带有参数的has_many条件

时间:2012-10-18 11:29:18

标签: ruby-on-rails ruby-on-rails-3 conditional-statements has-many

我有以下型号:

Trip -> has_many trip_members & belongs_to user
Trip -> has_many shares
Share -> belongs_to user

在我的旅行模型中,我设置了这样的关系

has_many :shares, :conditions => proc { |user| {:user_id => user.id} }

这样我总是有一个与该共享相关联的用户。我试图通过在调用trip.shares(用户)的过程中传入一个用户对象来访问它,但这似乎不起作用。这个传递参数如何工作?

另外,这是设置条件的正确方法吗?我想过重写生成的方法(例如trip.shares<< etc)以包含作为参数传入的用户,但这感觉不对。

1 个答案:

答案 0 :(得分:0)

条件不会更改创建关联对象的行为。它们仅限制从数据库中查询的结果。

trip.shares.create(:user => user)