我有一个视图可以显着不同,具体取决于特定用户选择的“模式”。是否有可能在运行时加载Rails助手?
我以为我会提取不同的行为分成两个不同的助手,然后让这样的代码在控制器:
class MyController < ApplicationController
case mode
when 'mode1'
helper "mode1"
when 'mode2'
helper "mode2"
else
raise "Invalid mode"
end
etc...
一旦正确的助手被加载,然后像一个声明<%= edit_item% >,它在两个助手中定义,将为特定的“模式”加载正确的表单。
这在开发过程中非常有效,但在生产中,case语句只运行一次。然后,你坚持任何帮手第一次加载(杜!我应该知道这一点)。
我想过其他方法来实现我需要做的,但我仍然认为这种使用帮手是一个很好的清洁改变视图行为的方式。
有没有人知道我可以在运行时加载(或重新加载)助手?
TIA:约翰
啊,古老的国家模式:http://en.wikipedia.org/wiki/State_pattern - 我的最爱之一!我希望我知道RoR,所以我可以帮忙。 – 2008-12-27 19:01:42