我的视图可能会有很大差异,具体取决于特定用户选择的“模式”。
我想我会将不同的行为提取到两个不同的 Helpers 中,然后在 Controller 中编写如下代码:
class MyController < ApplicationController
case mode
when 'mode1'
helper "mode1"
when 'mode2'
helper "mode2"
else
raise "Invalid mode"
end
etc...
一旦加载了正确的帮助程序,则在两个帮助程序中定义的类似 <%= edit_item %> 的语句将为特定的“模式”加载正确的表单。
这在开发中效果很好,但在生产中,case 语句只运行一次。然后你就会被第一次加载的任何帮助程序困住(呃!我应该知道的。)
我已经想到了其他方法来实现我需要做的事情,但我仍然认为使用 Helpers 是改变 View 行为的一种很好的干净方式。
有谁知道我如何在运行时加载(或重新加载)助手?
TIA:约翰