2013-03-18 159 views
0

控制器類型我創建了一個模塊,基本上是我想要做的是,檢測模塊紅寶石

在此模塊中

,有可能會像一個的before_filter功能。該函數將執行邏輯並確定它應執行的操作。例如

class JobsController < ApplicationController 
    include Mymodule 
    authorize_resources 

    def create 
    end 

    def update 
    end 

end 

module Mymodule 
    def authorize_resources 
    current_controller = params[:controller] 
    if current_controller == 'jobs' 
     //some logic 
    end 
    end 
end 

所以我怎麼居然能自動檢測控制器名稱基於在我的功能所在,如就業,用戶和等,這是類似的東西慘慘,但我想使自己的。

此外,如果它失敗,我該如何引發異常或redirect_to路徑,是否需要擴展一些rails類?

def authorize_resources 
    if current_controller.class == 'jobs' 
    //logic 
    end 
end 

回答

1

更改if到:

if(current_controller == JobsController) 

如果params[:controller]是類本身,

if(current_controller.class == JobsController) 

如果變量是JobsController一個實例。

+0

但是,我想使它動態檢測?當authorize_resources在特定控制器中調用時,它會檢測current_controller是什麼,並執行邏輯。 er..Mayb我更新了,看看是否你的意思..cz我不太瞭解你的答案。 – Nich 2013-03-18 03:33:02

+0

@Nich:我明白了!給我幾分鐘。 – Linuxios 2013-03-18 03:33:58

+0

當然,我更新了問題,因爲你提到 – Nich 2013-03-18 04:05:59