Rails - 如何在Devise gem上禁用对localhost:3000 / users / sign_in的访问?

时间:2014-07-08 02:10:18

标签: ruby-on-rails ruby login devise

我设置了我的route.rb,就像这样:

devise_scope :user do
  get "/login" => "devise/sessions#new"
end

现在我可以输入localhost:3000 / login并输入sign_in。

但是如果我进入localhost:3000 / users / sign_in仍然有效......如何禁用它?

1 个答案:

答案 0 :(得分:1)

来自设计documentation

  

请注意,您可以跳过所有会话路线并仅定义您自己的路线   使用如下跳过选项:

  devise_for :users, :skip => [:sessions]
  as :user do
    get 'signin' => 'devise/sessions#new', :as => :new_user_session
    post 'signin' => 'devise/sessions#create', :as => :user_session
    delete 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session
  end
  

这样:authenticate_user!和其他助手将重定向   用户使用您定义的正确自定义页面。