我定义了以下路线:
CyberTrackRails3::Application.routes.draw do
scope "(:locale)", :locale => /en|de|nl/ do
resources :login do
get 'index', on: :collection
get 'check', on: :collection
end
end
end
现在,url_for(:controller =>'login',:action =>'check'),给我正确的网址,en / login / check。
然而,使用login_check_path不起作用。我如何使这项工作?
我尝试使用匹配'check'=&gt;替换<:>''索引',on :: collection '检查',但这不起作用。 匹配'check'=&gt;也不会'登录#检查'即可。
答案 0 :(得分:2)
因为您正在向资源添加操作,我认为自动生成的名称将被颠倒,即'check_logins_path'(请参阅adding-more-restful-actions)
你需要具体的login_check_path吗?如果是这样,您应该能够定义资源之外的路径:登录块,即
match '/login/check' => 'login#check', :via => :get, :as => 'login_check'
和Fivell建议的一样,rake routes
会显示自动生成的路线名称。