Ich habe zwei Modelle, die die gleiche Methode enthalten:Wohin mit dem gemeinsamen Code in mehreren Modellen?
def foo
# do something
end
Wo soll ich das sagen?
Ich weiß, gemeinsamen Code geht in lib
Verzeichnis in einer Rails App.
Aber wenn ich es in einer neuen Klasse in lib
‚Foo
‘ genannt, und ich brauche, um seine Funktionalität zu meinen beiden ActiveRecord models
hinzuzufügen, mache ich das so:
class A < ActiveRecord::Base
includes Foo
class B < ActiveRecord::Base
includes Foo
und dann beide A
und B
werden die foo
-Methode genauso enthalten, als ob ich sie in jedem definiert hätte?
Wenn beide Modelle "before_save: before_method" aufrufen und ich dies auch in SharedMethods verwende, funktioniert das auch? Oder funktioniert es nur für die Methodendefinitionen? –
Ist es auch wichtig, wo Ihr 'require'-Code in environment.rb angezeigt wird? –
Sie wollen es wahrscheinlich in der "Rails :: Initializer.run tun | config | ... Ende" Abschnitt – nicholaides