【发布时间】:2010-09-28 13:21:57
【问题描述】:
我的视图可能会有很大差异,具体取决于特定用户选择的“模式”。
我以为我会将不同的行为提取到两个不同的 Helpers 中,然后在 Controller 中有这样的代码:
class MyController < ApplicationController
case mode
when 'mode1'
helper "mode1"
when 'mode2'
helper "mode2"
else
raise "Invalid mode"
end
etc...
一旦加载了正确的帮助程序,则在两个帮助程序中定义的类似 的语句将为特定的“模式”加载正确的表单。
这在开发中运行良好,但在生产中,case 语句只运行一次。然后你就会被第一次加载的任何帮助程序卡住(杜赫!我应该知道的。)
我已经想到了其他方法来实现我需要做的事情,但我仍然认为使用 Helpers 是改变 View 行为的一种很好的干净方法。
有谁知道我如何在运行时加载(或重新加载)帮助程序?
TIA:约翰
【问题讨论】:
-
啊,可敬的国家模式:en.wikipedia.org/wiki/State_pattern - 我的最爱之一!我希望我知道 RoR,所以我可以提供帮助。
标签: ruby-on-rails ruby helper view-helpers