我有一個視圖可以顯着不同,具體取決於特定用戶選擇的「模式」。是否有可能在運行時加載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