Mam problemy z budowaniem powiązania, które jest zgodne z warunkami podanymi w has_many :through
. Mam ten model:Szyny has_many: przez warunki i asocjacje budynku
class Contact < AR
has_many :group_contacts
has_many :groups, :through => :group_contacts, :conditions => {:groups => {:published => true}}
end
Problem występuje, gdy próbuję utworzyć grupę z kontaktu. Z powyższej składni, otrzymuję błąd:
contact.groups.build
=> ActiveRecord::UnknownAttributeError: unknown attribute: groups
Ale kiedy należy użyć następującej składni to działa:
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>
widzę odniesienie do dokładnej problemu w this question. Mówi się, że zgłoszony zostanie bilet na ten błąd (z powrotem w wersjach 3 wersji). Nie mogę znaleźć niczego na rails 3.0.x
.
Używam wersji 3.0.8. Czy ktoś inny znalazł ten problem?
zauważa ponadto:
Ja również okazało się, że kiedy jestem grup budowlanych, to faktycznie ignoruje moje warunki w sprawie stowarzyszenia podczas budowy. Jedynym powodem, dla którego moja powyższa kompilacja miała wartość published => true
, jest domyślna wartość w db.
To wygląda na regresję, czy ktoś inny może to zweryfikować?
Czy to możliwe, masz na myśli: 'HAS_MANY: Duże: through =>: group_contacts,: conditions => {: grupy => {: opublikowane => true}}' ? – dwhalen
oops, thx good find! – brad