在Rails中使用生成的路径和资源

时间:2012-03-05 13:17:13

标签: ruby-on-rails-3 jruby

我定义了以下路线:

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;也不会'登录#检查'即可。

1 个答案:

答案 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会显示自动生成的路线名称。