0
4

1 に答える 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 に答える