我正在使用Rails 3.我編寫的控制器非常冗長。所以我想重構控制器。如何修改模型中的會話?
予編碼的稱爲ProductMaker這使產品和修改會話(嚮導形式CURRENT_STEP產品的任務,如果請求是一個刷新等)
此類具有方法,該方法接收會話參數類,修改然後返回這個新的會話。
控制器的動作:在lib文件夾
def new
#INITIALIZE CODE
session[:refresh] ||= SortedArray.new [1]
#...MORE CODE
end
def create
#...MUCH CODE
unless Utilities.is_refresh(session[:refresh])
#...more code
session = ProductMaker.some_method_which_return_session(session) #KEY PROBLEM LINE
#...more code
end
#... MORE CODE
end
我ProductMaker類:
class ProductMaker
def self.some_method_which_return_session(session)
session[:any_key] = "some value"
return session
end
end
然而,當我寫的關鍵問題LINE會議是一個零值。如果我評論這一行,會話是一個ActionDispatch :: Session :: AbstractStore :: SessionHash。
這可能是問題所在? 我如何重構控制器邏輯,修改許多會話密鑰,並根據會話值「填充」模型,以建模/分類?
更新:
我在閱讀有關紅寶石中的綁定。
如何使用綁定和eval方法修改會話?
如果您有其他想法,請發佈您的答案。
在此先感謝
非常感謝你,如果我昨天瞭解這個問題,我的新問題是修改會話變量,最後我使用綁定。 – maxiperez 2012-03-13 14:46:19