ruby on rails - inverse_of - Rails has_many: a través de condiciones y asociaciones de construcción
inverse_of rails 5 (1)
has_many :groups, :through => :group_contacts, :conditions => {:published => true}
o
has_many :groups, :through => :group_contacts, :conditions => {"groups.published" => true}
Tengo problemas para crear una asociación que sea has_many :through
de condiciones. Tengo este modelo:
class Contact < AR
has_many :group_contacts
has_many :groups, :through => :group_contacts, :conditions => {:groups => {:published => true}}
end
El problema ocurre cuando trato de crear una instancia de un grupo de un contacto. Con la sintaxis anterior, aparece un error:
contact.groups.build
=> ActiveRecord::UnknownAttributeError: unknown attribute: groups
Pero cuando uso la siguiente sintaxis funciona:
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>
Veo una referencia al problema exacto en esta pregunta . Se dice que se archivaría un ticket para este error (de vuelta en versiones de prerray 3). Sin embargo, no puedo encontrar nada en los rails 3.0.x
Estoy usando 3.0.8. ¿Alguien más ha encontrado este problema?
Notas adicionales :
También descubrí que cuando estoy creando grupos, en realidad ignora mis condiciones en la asociación cuando construyo. La única razón por la que mi compilación anterior ha published => true
es porque es la predeterminada en el archivo db.
Esto parece una regresión, ¿alguien más puede verificar esto?