如果我們有一個名爲initialize
的前置過濾器來初始化公共變量,那麼這些變量必須變成實例變量?有沒有其他的方法來做到這一點?在Ruby on Rails中,當使用before_filter時,局部變量需要變成實例變量嗎?
更新:這種情況是驗證一些URL參數,並設置它們。這曾經是一個動作,所以一切都可以使用局部變量來完成。但是現在,3個操作本質上採用相同的參數,所以代碼被移動到私有方法validate_params
,並使用before_filter
進行調用,但是這些局部變量似乎必須被製作爲實例變量。
它們可以不作爲實例變量嗎?由於模型的內置驗證,是否有驗證URL參數的框架/寶石?
在過濾器'initialize'之前不要調用你的,因爲這是Ruby用來做其他事情的方法的名稱。用這個名字來調用你的方法很可能會阻止一些其他更重要的初始化完成 – Gareth 2010-09-25 00:16:26
如果你想讓任何人回答你的問題,你還應該接受更多的答案。 – DJTripleThreat 2010-09-25 00:39:31
誰降低了這個?似乎是一個完全有效的問題。僅僅因爲有人不接受答案(他們絕對應該這樣做)並不意味着他們的問題應該被降低,如果他們的話題是可以理解的話。 – 2010-09-25 00:44:35