从设计 url 中删除 /user



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

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

这有效,但 devise 提供的new_user_session_path仍然指向 http://myapp.com/users/sign_in。

请问我怎样才能将其更改为 http://myapp.com/sign_in?

您必须在路由定义中重新定义该路径帮助程序:

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

这就是我一直在做的事情,它工作得很好。

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

尝试在 sign_in 中添加正斜杠:

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

routes.rb文件中(devise_scope :user块之外)添加:

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

相关内容

最新更新