1

我正在尝试减少 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 语句。任何帮助表示赞赏。

4

1 回答 1

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

这是你想要的?

于 2012-05-11T04:07:51.507 回答