【发布时间】:2017-08-26 06:38:45
【问题描述】:
除了检查if controller_name == 'foo' && action_name == 'bar',是否有Rails 方法以您在routes.rb 文件(get '/buzz' => 'foo#bar') 中定义它们的相同格式返回两者?
是否有类似get_current_route() 的东西会返回"foo#bar"?
【问题讨论】:
-
这种格式对于路由系统来说非常独特,并没有在其他地方使用,即使这样,它也只是两个稍长选项的简写。这里的用例是什么?
-
避免这种情况:
if (controller_name == 'foo' && action_name == 'bar') || (controller_name == 'foo2' && action_name == 'bar2') -
做一个查找表:
MAGIC_ROUTES = [ %w[ foo bar ], %w[ foo2 bar2 ] ]然后MAGIC_ROUTES.include?([ params[:controller], params[:action] ]) -
@tadman 这听起来像是维护重复的路线列表的痛苦方式
-
你有重复的路线听起来很痛苦。您有什么理由担心始发路线?
标签: ruby-on-rails ruby