ruby-on-rails - 设计 root - 禁用必须登录

标签 ruby-on-rails ruby devise

每当我访问我的主页或根目录时,我都会被重定向到 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! 操作,即 createupdate >...这样,您就不必浏览登录页面。

关于ruby-on-rails - 设计 root - 禁用必须登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31869493/

相关文章:

ruby-on-rails - 根据与数组匹配的键对散列进行排序

ios - 使用 Devise 通过 iOS 应用程序进行注册、登录和注销

ruby-on-rails - 设计没有 session cookie 的 token_authenticable

ruby - 设计重置密码 token 无效

javascript - Ruby on Rails - 将地理编码器对象作为谷歌地图标记数组

ruby-on-rails - 在 Rails 上设置 ruby​​ 时确保需要运行时错误

jquery - 使用 Rails 3 和 jQuery 进行 Ajax - 从 JS 调用

rspec - 测试 before_filter 被调用

ruby - 获取以兆字节为单位的准确文件大小?

Ruby NoMethodError(未定义方法 '' .. .' for ' .... :Class'