【发布时间】:2014-08-13 03:59:23
【问题描述】:
大家好,我有一段代码使用了 3 个模型...
class Buyer < ActiveRecord::Base
has_many :trans
has_many :sellers, :through => :trans
validates :seller_id, presence: true
end
class Seller < ActiveRecord::Base
has_many :trans
has_many :buyers, :through => :trans
validates :buyer_id, presence: true
end
class Tran < ActiveRecord::Base
belongs_to :buyer
validates :buyer_id, presence: true
belongs_to :seller
validates :seller_id, presence: true
end
供应商 - has_many trans, has_many 买家通过 trans
Trans - belongs_to 买家,belongs_to 卖家
在我的 Seller_show 视图中,我可以执行以下代码并成功地给我一个卖家买家列表,以及他们所有交易的总和。这一切都很好但是总和显示了所有买方的交易,不限于与卖方的交易。
我尝试了很多不同的方法来尝试限制seller_id = trans.supplier_id(外键)的交易,但似乎无法使其发挥作用。
有人可以帮忙吗?非常感谢您!
(仅供参考,'sum' 是 trans 表中托管交易金额的列的标题!)
<ol>
<% @seller.buyers.uniq{|t| t.buyer_id }.sort_by {|su| su.trans.sum(:sum)}.reverse.each do |su| %>
<li><%= su.name %> <%= su.trans.sum(:sum) %></li>
<% end %>
</ol>
【问题讨论】:
标签: ruby-on-rails ruby