我有一个 rails 3.1.12 应用程序,其中假设我有一个表A,并且我有一些数据,并且它与表B相关联并具有 has_many 关系,我的意思是说
class A < ActiveRecord::Base
has_many :B, :conditions => {:type => "B"}, :dependent => :destroy
has_many :c, :class_name => "B", :conditions => {:type => nil}, :dependent => :destroy
end
在 B 的模型中,我有:
class B < ActiveRecord::Base
belongs_to :A
end
我的表C中有一些数据是从B继承的
- **name** **amount**
- c1 10
- c2 20
- c3 5
- c1 4
- c2 15
我只想一次显示这个重复的项目,例如:
- 姓名*金额*
- c1 14
- c2 35
- c3 5
但我不知道如何得到这个,我已经尝试过**group_by**
方法uniq
,但它们在我的情况下不起作用。在我的控制器A视图操作中,我已经声明了所有这些:
class AsController < ApplicationController
def show
@a = A.find(params[:id])
@bs = @a.bs
@cs = @a.cs
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @a }
end
end
end
在我的视图文件中,我将所有这些都称为:
<%= render :partial => "b_item_details", :collection => @bs %>
<%= render :partial => "c_line_item_details", :collection => @cs %>
我相信有些人可能会遇到这样的问题,任何帮助将不胜感激
实际上,我想显示唯一记录,我的意思是如果 c1 有 4 个条目而 c2 有 3 个条目,而不是在显示时我只想显示 c1 和 c2 一次,它们的总数应该是所有条目的总数(c1+c1+c3+c4)