1 に答える
2
.where
メソッドは ActiveRecord リレーションを返します。これは、 のように、他のそのようなメソッドやスコープと連鎖できることを意味しModel.where(:user_id => id).published
ます。動的ファインダー (.find_by_name
など) は、モデル インスタンスまたは配列を返します。これらは、追加のスコープと連鎖することはできません。
ダイナミック ファインダは、( 、 、または空のリレーションActiveRecord::RecordNotFound
ではなく) 期待されるレコードが見つからない場合に、感嘆符 ( )`など) を使用するとエラーを返すことがあります。nil
[]
User.find_by_email!('example@email.com
それぞれに独自の用途があります。メソッドが呼び出されるケースに基づいて決定するのはあなた次第です。
于 2012-10-17T03:28:11.013 に答える