Как бы я решил эту проблему, это определить новый файл внутри вашей папки lib
со значимым именем.Сейчас я просто буду использовать does_as_shared.rb
:
module DoesAsShared
def setup_shared_data
@shared_data = ...do something useful here ...
end
end
, а затем внутри ваших контроллеров, которым нужен код, который вы пишете:
class ThingsController < ApplicationController
include DoesAsShared
def index
setup_shared_data
.. and do some more stuff ...
end
end
Преимущество этого кода в том, что общий кодограничено теми контроллерами, которые действительно нуждаются в этом.И в то же время он довольно читабелен: оператор включения, учитывая, что имя выбрано правильно, четко указывает, какие функции включены.