而不是檢查if controller_name == 'foo' && action_name == 'bar'
的,是有一個Rails的方法來在你的routes.rb中文件(get '/buzz' => 'foo#bar'
)定義它們相同的格式返回兩個?Rails方法返回當前的「控制器#行動」?
有什麼樣get_current_route()
那將返回"foo#bar"
?
而不是檢查if controller_name == 'foo' && action_name == 'bar'
的,是有一個Rails的方法來在你的routes.rb中文件(get '/buzz' => 'foo#bar'
)定義它們相同的格式返回兩個?Rails方法返回當前的「控制器#行動」?
有什麼樣get_current_route()
那將返回"foo#bar"
?
我不知道一個。
但是你可以寫你自己的,堅持方便的地方:
例如爲:
module ApplicationHelper
def get_current_route
"#{params[:controller]}##{params[:action]}"
end
end
您可以通過使用controller_name
和action_name
方法,讓你的電流控制器和行動的名稱。所以你可以連接字符串來獲得想要的結果。
您也可以從PARAMS哈希其視爲一種不好的做法,這樣做讓這些值。
params哈希表將始終包含:控制器和:動作鍵, 但你應該使用的方法CONTROLLER_NAME和ACTION_NAME而是 訪問這些值
參考鏈接:
該格式是非常獨特的路由系統,而不是其他地方使用,而且即便如此,它只是兩個稍長選項的簡寫。這裏的用例是什麼? – tadman
避免這樣的:如果'(CONTROLLER_NAME == '富' && ACTION_NAME == '巴')|| (CONTROLLER_NAME == 'foo2的' && ACTION_NAME == 'BAR2')' – Andrei
做一個查找表:'MAGIC_ROUTES = [%(重量)[富巴],%(重量)[foo2的BAR2]]'然後'MAGIC_ROUTES.include? ([PARAMS [:控制器],則params [:行動])' – tadman