Ich habe eine Einheit: book
der Klasse Buch.Schienen gesetzt has_many Wert dynamisch
Die Entitätsklasse hat has_many
Beziehung mit anderen Tabellen, pages
zum Beispiel.
Nehmen wir an, dass page_1
und page_2
gültige Werte sind, die ich speichern möchte. Die nicht-dynamische Version wäre etwas wie:
entity.pages = [page_1, page_2]
Wie kann ich das dynamisch einstellen?
ich versuchte, mit send
ohne Glück (was für has_one gut funktioniert):
attr = :pages # my dynamic attribute
book.send(attr) = [page_1, page_2]
# SyntaxError: unexpected '=', expecting end-of-input
# mc.send(:diagnoses, '=') = [s]
# ^
Wenn ich <<
verwenden scheint es zu funktionieren:
book.send(attr) << page_1
aber das Problem ist, dass ich brauche, um Löschen unterstützen, z wenn das Buch page3 hatte und jetzt page1 und page2.
Ich möchte nicht eval
verwenden, sowohl wegen der Leistung und Sicherheit. Nicht sicher, dass es verwandt ist, aber diese dynamischen Attribute haben alle die gleiche Klasse - hat viele mit einer dynamischen Bedingung.
hast du versucht 'book.public_send (" # {attr} = ", [page_1, page_2])'? – okliv