У меня есть представление, которое может значительно различаться в зависимости от «режима», выбранного конкретным пользователем.
Я думал, что извлечу разное поведение в два разных помощника, а затем буду иметь такой код в контроллере:
class MyController < ApplicationController
case mode
when 'mode1'
helper "mode1"
when 'mode2'
helper "mode2"
else
raise "Invalid mode"
end
etc...
После загрузки правильного помощника оператор типа ‹% = edit_item%>, который определен в обоих помощниках, загрузит правильную форму для конкретного« режима ».
Это прекрасно работает в разработке, но в производстве оператор case запускается только один раз. Тогда вы застряли с тем помощником, который был загружен первым (да, я должен был это знать).
Я думал о других способах достижения того, что мне нужно сделать, но я все еще думаю, что использование помощников - хороший чистый способ изменить поведение представления.
Кто-нибудь знает, как я могу загрузить (или перезагрузить) помощник во время выполнения?
ТИА: Джон