我有一个视图,根据特定用户选择的模式,可以有很大差异。
我认为我会将不同的行为提取到两个不同的帮助程序中,然后在控制器中使用这样的代码:
class MyController < ApplicationController
case mode
when mode1
helper "mode1"
when mode2
helper "mode2"
else
raise "Invalid mode"
end
etc...
一旦正确的帮助程序已加载,那么像 <%= edit_item %> 这样的声明,在两个帮助程序中都有定义,将会为特定模式加载正确的表格。
这在开发中运行得很好,但在生产中,case语句只运行一次。然后你就会卡在了最先加载的帮助程序上(哎呀!我应该知道的)。
我已经考虑了其他方法来实现我需要做的事情,但我仍然认为使用Helpers来改变视图的行为是一种不错干净的方式。
有人知道我如何在运行时加载(或重新加载)辅助程序吗?
TIA:约翰