收到此错误消息时,我似乎无法获得要在视图中显示的范围的结果。我正在尝试将当天的所有会员数量相加并显示为总数
missing attribute: membership_id我的模型和范围
class Member < ActiveRecord::Base
belongs_to :membership
accepts_nested_attributes_for :membership
attr_accessible :membership_id, :forename, :middlename, :surname, :house_no, :house_name, :street, :town, :postcode, :home_tel, :mobile_tel, :work_tel, :email, :start_date, :expiry_date
scope :new_memberships_cash_today, ->() {
joins(:membership).where(:start_date => Date.today).select('ROUND(SUM(memberships.cost), 2)')
}
end
class Membership < ActiveRecord::Base
has_many :members, :dependent => :destroy
attr_accessible :membership_type, :cost
end然后我的观点
columns do
#Total amount in £ for New Memberships today
column do
panel "Cash Today", :class => 'NewAmountMemberships' do
table_for Member.new_memberships_cash_today do
column 'Total cash' do |c|
c.membership.map { |e| [e.cost, e.id] }
end
end
end
end
end经过一些阅读后,似乎在作用域中的select调用可能有问题,因为我需要指定所有的模型属性才能使用活动记录成功调用?
当我在select中执行sum时,我不确定如何添加更多属性,如果是这样的话
感谢您的任何帮助
我在控制台中运行了作用域,结果如下所示
Member Load (0.1ms) SELECT ROUND(SUM(memberships.cost), 2) FROM `members` INNER JOIN `memberships` ON `memberships`.`id` = `members`.`membership_id` WHERE `members`.`start_date` = '2013-12-13'
=> #<ActiveRecord::Relation [#<Member id: nil>]>发布于 2013-12-13 22:59:37
我不会在作用域中这样做,而是在一个辅助方法中。这样,您就可以获取相关的记录,并只需调用您的方法返回总数。
大致是这样的:
def membership_sum(memberships = [])
sum = 0
memberships.each { |membership| sum += membership.cost }
sum.round
end现在,将相关记录存储在@memberships变量中(从控制器中),然后在视图中使用<%= membership_sum(@memberships) %>
https://stackoverflow.com/questions/20569093
复制相似问题