从设计URL中删除/用户

时间:2013-09-24 13:45:28

标签: ruby-on-rails ruby-on-rails-3 devise

我希望用户能够使用网址http://myapp.com/sign_in登录,因此我在路线中添加了以下内容。

devise_scope :user do
  get "sign_in", :to => "devise/sessions#new"
end

这样可行,但设计提供的new_user_session_path仍指向http://myapp.com/users/sign_in

如何将其更改为http://myapp.com/sign_in

3 个答案:

答案 0 :(得分:1)

您必须在路线定义中重新定义路径助手:

devise_scope :user do
  get "sign_in" => "devise/sessions#new", :as => :new_user_session
end

这就是我一直在做的事情,它运作良好。

请注意,我还删除了路线中的:to部分。您可以直接使用=>将URL映射到控制器的操作。但我不认为这与你的问题有关。

答案 1 :(得分:0)

尝试向sign_in添加正斜杠:

devise_scope :user do
  get "/sign_in", :to => "devise/sessions#new"
end

答案 2 :(得分:0)

您的routes.rb文件中的

devise_scope :user块之外)添加:

match "/sign_in", :to => "devise/sessions#new"