2
我有幾個方法被before_filter每個請求觸發。我試過把這些方法放在幾個地方,但最終在lib下的文件中使用了這些方法,並且這是唯一可行的方法。放置這些方法的正確位置在哪裏?理想情況下,我想自動讓這些控制器可以訪問任何其他的控制器。正確的地方爲rails應用程序範圍的方法,將訪問before_filter
我有幾個方法被before_filter每個請求觸發。我試過把這些方法放在幾個地方,但最終在lib下的文件中使用了這些方法,並且這是唯一可行的方法。放置這些方法的正確位置在哪裏?理想情況下,我想自動讓這些控制器可以訪問任何其他的控制器。正確的地方爲rails應用程序範圍的方法,將訪問before_filter
您可以將幾個控制器使用的方法放在ApplicationController
中。如果大多數請求必須執行此before_filter
,則將其也放入ApplicationController
,並且您可以忽略特定操作的篩選器skip_before_filter
。一個例子是here。
這是我的理解,控制器處理請求,並從您的模型提供數據/功能。不會在控制器中填充非請求相關的方法違背了Rails的基本概念之一? – 2012-03-15 19:45:17
@franklinstine如果您認爲代碼與請求處理無關,並且可以在其他地方重用,請將其放在lib文件夾中的模塊或類中,然後從「ApplicationController」中的'before_filter'中調用它。 – Baldrick 2012-03-16 08:03:54
謝謝@baldrick這正是我現在擁有它的原因,我只是不確定這是否是最好的/最喜歡的選擇。 – 2012-03-16 18:53:29