每当我访问我的主页或根目录时,我都会被重定向到 Devise 的/users/sign_in/。我已经使用过相当多的routes.rb 文件,但我无法弄清楚为什么Devise 会启动页面 Controller 。页面 Controller 实际上是空的。
路线.rb
Rails.application.routes.draw do
resources :pages
root 'pages#index'
resources :events do
member do
get :create_attendee
delete :destroy_attendee
end
end
devise_for :users
devise_scope :user do
authenticated :user do
root 'events#index', as: :authenticated_root
end
unauthenticated do
root 'pages#index', as: :unauthenticated_root
end
end
pages_controller.rb
class PagesController < ApplicationController
def index
end
end
最佳答案
将 before_filter :authenticate_user!, except: [:index]
添加到 pages_controller.rb
中,它将跳过身份验证。
除 index
之外的所有 Controller 方法调用都会触发 authenticate_user!
操作,即 create
、update
>...这样,您就不必浏览登录页面。
关于ruby-on-rails - 设计 root - 禁用必须登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31869493/