2012-05-11 78 views
1

我想减少我的Rails 3应用程序中的数据库查询的数量。急于加载Rails 3应用程序

用户模式:

has_many :agreements 

协议模型:

belongs_to :user 

的协议表有两个用户ID字段... payer_id和payee_id。是否有可能做出如下工作:

user_payer_agreements = current_user.agreements 
user_payee_agreements = current_user.agreements 

我可以使用user_id作为事务的一方,但我需要获得双方。是否可以在创建关联的过程中指定payer_id或payee_id而不是user_id?如果没有,我需要使用连接还是sql语句。任何帮助表示赞赏。

回答

2

你可以这样做:

has_many :payer_agreements, :class_name => 'Agreement', :foreign_key => :payer_id 
has_many :payee_agreements, :class_name => 'Agreement', :foreign_key => :payee_id 

有了这个,你可以这样做:

current_user.payer_agreements 
current_user.payee_agreements 

这是你在找什么?

+0

完美。谢谢。 – Jay