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