Ich schaffe eine foo obeject wie folgt aus:Overriding ApplicationRecord initialisieren, schlechte Idee?
@foo = Foo.new(foo_params)
@foo.bar = Bar.where(name: "baz").first_or_create
Aber es gibt auch andere Objekte, die ich brauche, wird dies auch tun. Also, dachte ich an das Überschreiben der Foo Methode initialize, so etwas zu tun:
class Foo < ApplicationRecord
def initialize(*args, BarName)
@foo = super
@foo.bar = Bar.where(name: BarName).first_or_create
end
end
und nennen Sie es wie folgt aus:
@foo = Foo.new(foo_params, "baz")
Aber Foo ist ein ApplicationRecord und es scheint, dass es nicht empfehlenswert ist Überschreiben der Initialisierungsmethode "ApplicationRecord"
Also wie könnte ich das tun? Irgendwelche anderen Ideen? Würde dieses initialisierende übergeordnete Ding funktionieren?
Ich würde nur vorschlagen, verwenden Sie 'attr_accessor' für' barname' –
wahr ... das wäre besser r .. Ich werde die Antwort entsprechend ändern. Ty @ NikitaMisharin für die Eingabe. – David