mam dwa modele, które zawierają tę samą metodę:Gdzie umieścić wspólny kod znaleziony w wielu modelach?
def foo
# do something
end
Gdzie należy umieścić to?
Znam wspólny kod w katalogu lib
katalogu w aplikacji Rails.
Ale jeśli mogę umieścić go w nowej klasie w lib
nazwie „Foo
”, a muszę dodać swoją funkcjonalność obu moich ActiveRecord models
, mogę to zrobić tak:
class A < ActiveRecord::Base
includes Foo
class B < ActiveRecord::Base
includes Foo
a następnie obie A
i B
będzie zawierać metodę foo
, tak jakbym ją zdefiniował w każdym z nich?
Jeśli oba modele nazywają "before_save: before_method", a ja również umieściłem to w SharedMethods, to też będzie działać? Czy to działa tylko w przypadku definicji metod? –
Czy ma znaczenie, gdzie twój kod "wymaga" pojawia się w environment.rb? –
Prawdopodobnie będziesz go potrzebował w sekcji "Rails :: Initializer.run do | config | ..." – nicholaides