У меня есть модель и довольно много проблем, я хочу вызывать один и тот же метод из каждой проблемы и из самой модели, и мне было интересно, возможно ли это.
Итак, допустим, у меня естьмодель, подобная этой, имеет три проблемы и метод setup_defaults.
class Item < ApplicationRecord
include ConcernOne
include ConcernTwo
include ConcernThree
def setup_defaults
# model code here
end
end
Я хочу иметь setup_defaults
в каждом концерне, который работает так же, как и в модели, поэтому он выглядит так:
module ConcernOne
extend ActiveSupport::Concern
def setup_defaults
# concern one code
end
end
module ConcernTwo
extend ActiveSupport::Concern
def setup_defaults
# concern two code
end
end
module ConcernThree
extend ActiveSupport::Concern
def setup_defaults
# concern three code
end
end
Итак, я хочу concern one code
, затем concern two code
, затем concern one code
и, наконец, model code here
для запуска в таком порядке.
Я пытался использовать super, как это, но он запускает только последний код задачи, а затем код модели:
class Item < ApplicationRecord
include ConcernOne
include ConcernTwo
include ConcernThree
def setup_defaults
super
# model code here
end
end
Можно ли запустить все 3 задачи setup_defaults
, а затем модель setup_defaults
?Возможно ли это?
Спасибо.