Ich habe diese 3 Modelle:Kann hinzufügen oder löschen, das nicht der Fall viele durch Assoziationsmodell hat in Schienen 3.2
class BikeActionGroup < ActiveRecord::Base
has_many :bike_action_groups_slas
has_many :slas,through: :bike_action_groups_slas
end
class BikeActionGroupsSla < ActiveRecord::Base
belongs_to :bike_action_group
belongs_to :sla
end
class Sla < ActiveRecord::Base
has_many :bike_action_groups_slas
has_many :bike_action_groups, through: :bike_action_groups_slas
end
Jedes Mal, wenn ich versuche, etwas hinzuzufügen oder zu löschen, um sla.bike_action_groups
es mir eine NoMethodError auf dem löschen gibt oder anhängen. Ich sla.bike_action_groups
ausgetestet den Inhalt davon zu sehen und es nicht eine Reihe von bike_action_groups zurückkehren, gibt es diese stattdessen:
[#<BikeActionGroup id: 2, name: "Wheels">]
Ich kann nicht rufen alle Methoden auf diese löschen möchte, aber wenn ich es konvertieren mit to_a
zu Array kann ich, nur wird diese nicht von der tatsächlichen sla.bike_action_groups
löschen, aber aus dem konvertierten Feld
dies sind die Methoden verwenden, um ich hinzufügen oder löschen:
@sla.bike_action_groups << @bike_action_group
@sla.bike_action_groups.delete(@bike_action_group)
Können Sie die von Ihnen verwendeten Methodenaufrufe posten? Dies ist das erwartete Verhalten von has_many, aber ich möchte sehen, wie Sie versuchen, es zu verwenden, bevor Sie meine Antwort posten. – RichardAE
hast du '' '' auf 'sla.bike_action_groups' versucht? wahrscheinlich, wenn Schienen 3 kann keine richtige Zwischensatz hinzufügen, müssen Sie nicht durch Beziehung verwenden ... –