2012-01-28 15 views
0

文字列を一意の識別子として持つモデルを作成しました。 マイグレーションを作成して、その文字列にインデックスを追加し、一意に設定しました。私は私が得るすべてはActiveRecordの:: RecordNotFound例外で、現時点では例Rails:任意のインデックスでfindメソッドを使用する方法

@object = Object.find(params[:unique_id]) 

のために、単にfindメソッドにそのユニークな識別子の文字列を渡すことによって、データベースのエントリにアクセスするにはどうすればよい ...

Couldn't find Object with id=abc

私は Object.find('abc')

whereメソッドにアクセスしよう

...これは関係を私に戻って与えるので、何の代替ではありません。

答えて

1

Object.find(:unique_id)は、 'object_id'列を検索します。他の列で検索する場合は、Object.find_by_[column_name]!(:unique_id)を使用してください。 findメソッドと同じように、レコードが見つからない場合は例外が発生します。 006:0> Object.find_by_unique_id私に次 `IRB(メイン)を与える

+0

(:UNIQUE_ID => 'ABC')を と、ArgumentError:不明なキー:オブジェクト、::UNIQUE_ID 私の移行が' ADD_INDEXあるunique_id' 、unique:true' 私はどこで使うのですか? – Isabaellchen

+0

'Object.find_by_unique_id!( 'abc')' – Baldrick

+0

おはようございます。今それは動作します – Isabaellchen

関連する問題