0

试图在文档中寻找这个,但找不到答案。如果我有一个属于用户的模型令牌,我可以这样做:

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

其中 u 是 User 类的一个实例。

但这是不可能的:

Token.where(:user => u)

这不应该是可能的还是我错过了什么?(IMO 更具表现力和更简单)。

4

1 回答 1

0

您只能在 where 子句中使用数据库列名。“user_id”是列名,而“user”是关联的名称。

如果您在 User 模型和 Token 模型之间有关联,那么您可以这样做。

u.tokens

关联应该是这样的。

class User < ActiveRecord::Base
   has_many :tokens
 end

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