Tôi gặp sự cố khi xây dựng liên kết là has_many :through
với điều kiện. Tôi có mô hình này:Rails has_many: thông qua các điều kiện và liên kết xây dựng
class Contact < AR
has_many :group_contacts
has_many :groups, :through => :group_contacts, :conditions => {:groups => {:published => true}}
end
sự cố xảy ra khi tôi cố gắng khởi tạo nhóm từ một liên hệ. Với cú pháp trên, tôi nhận được một lỗi:
contact.groups.build
=> ActiveRecord::UnknownAttributeError: unknown attribute: groups
Nhưng khi tôi sử dụng cú pháp sau nó hoạt động:
has_many :groups, :through => :group_contacts, :conditions => ['groups.published = ?', true]
contact.groups.build
=> #<Group id: nil, name: nil, description: nil, created_at: nil, updated_at: nil, published: true>
tôi thấy một tham chiếu đến các vấn đề chính xác trong this question. Người ta nói rằng một tấm vé sẽ được đệ trình cho lỗi này (trở lại trong bản tiền tố 3 phiên bản). Tôi không thể tìm thấy bất cứ điều gì tuy nhiên trên rails 3.0.x
.
Tôi đang sử dụng 3.0.8. Có ai khác tìm thấy vấn đề này không?
Ghi chú Hơn nữa:
Tôi cũng đã phát hiện ra rằng khi tôi đang xây dựng nhóm, nó thực sự bỏ qua điều kiện của tôi trên hiệp hội khi xây dựng. Lý do duy nhất của tôi ở trên xây dựng có published => true
là bởi vì nó là mặc định trong db.
Điều này có vẻ giống như hồi quy, bất kỳ ai khác có thể xác minh điều này không?
Có thể bạn có nghĩa là: 'has_many: nhóm,: thông qua =>: group_contacts,: conditions => {: nhóm => {: công bố => true}}' ? – dwhalen
oops, thx tốt! – brad