이 오류 메시지가 표시되면서 내보기에 표시 할 범위의 결과를 얻지 못하는 것 같습니다. 총 일일 총 회원 수를 합산하여 총계로 표시하려고합니다.누락 된 속성 오류 레일
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
일부 승을 읽은 후 ould는 Active Record로 성공적인 호출을하기 위해 모든 모델 속성을 지정해야하므로 범위에서 선택 호출에 문제가있을 수 있습니다.
나는이 내가 콘솔이의 범위를 실행 한 어떤 도움이
감사
도의 경우 경우 더 많은 속성을 추가하는 방법을 확실하지 오전 선택 내에서 합을 수행하고있다으로 무엇이 반환 되는가
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>]>
귀하의 범위 반환을 사용 단일 개체 및 그 개체에서 액세스 할 수있는 유일한 것은 합계입니다. 범위에서 개체의 멤버십에 액세스하려고하는 것을 볼 수 있습니다. member_id가 없으므로 오류가 발생했습니다. – usha
감사합니다. 내 범위를 조정하여 멤버십 모델에서 열 비용의 합계를 반환하는 방법에 대한 아이디어가 있습니까? – Richlewis
'attr_accessible : membership_id'는 매우 나쁜 습관입니다! 관련 id는 params를 통해 액세스 할 수 없습니다. 이렇게하면 정통한 사용자가 회원을 임의의 회원으로 연결할 수 있습니다. –