0

ドキュメントでこれを探してみましたが、答えが見つかりませんでした。ユーザーに属しているモデルトークンがある場合、次のことができます。

Token.where(:user_id => u.id)

ここで、u は User クラスのインスタンスです。

しかし、それはできません:

Token.where(:user => u)

これは可能ではありませんか、それとも何か不足していますか? (IMO はより表現力豊かでシンプルです)。

4

1 に答える 1

0

where 句では、データベースの列名のみを使用できます。「user_id」は列名ですが、「user」は関連付けの名前です。

ユーザー モデルとトークン モデルの間に関連付けがある場合は、これを行うことができます。

u.tokens

関連付けは次のようになります。

class User < ActiveRecord::Base
   has_many :tokens
 end

class Token < ActiveRecord::Base
  belongs_to :user
end
于 2013-06-19T10:28:21.460 に答える