1

我有以下型号:

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(user) 时传入一个用户对象来访问它,但这似乎不起作用。这个传递给 proc 的参数是如何工作的?

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

4

1 回答 1

0

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

trip.shares.create(:user => user)
于 2012-10-18T11:38:24.900 回答