在视图中检查控制器/操作的简短方法

时间:2014-10-15 17:13:05

标签: ruby-on-rails ruby-on-rails-4

if params[:controller] == "posts" && params[:action] == "show"

检查某个控制器/动作对的Railsy方法是否比上述更简单?

这样的东西?

if couple("posts#show")

如果有多项行动,甚至可以这样:

if couple("posts#show/index/edit")

2 个答案:

答案 0 :(得分:1)

您始终可以在ApplicationController中定义自定义方法。对于简单的情况,可能是这样的:

def couple?(route_path)
  controller, action = route_path.split('#')
  controller_name == controller && action_name == action
end
helper_method :couple?

这样,您就可以在控制器和视图中使用该方法。如果您不需要在控制器中使用它,请将其直接定义到ApplicationHelper中。

答案 1 :(得分:0)

有一种rails方法,它叫做current_page?(选项)

基本上你可以传递你喜欢的参数(控制器,动作,控制器+动作,网址等)

了解更多信息: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-current_page-3F