通过签署用户,重定向到身份验证页面,覆盖Devises“您已登录”

时间:2015-08-21 01:49:48

标签: ruby-on-rails devise

如何从显示此消息更改为将用户注销并将其重定向到身份验证页面?从这个主题的其他主题,我明白Devise SessionsController必须改变,但我不明白如何将这些例子应用到我的这个控制器甚至位于哪里?

我正在开发一款应用,我有一个User型号和一个Page型号,就像在Facebook上一样。这两个模型都添加了Devise。当我在用户帐户下登录并尝试创建页面时,我会收到“您已登录”消息,并且日志显示为Filter chain halted as :require_no_authentication rendered or redirected。当登录用户尝试创建页面时,我想要发生的是重定向到页面,此用户可以重新登录并通过这样做确认他希望在他的帐户下使用此页面,或者创建一个整体不同电子邮件下的新帐户,只管理此新页面。

为页面创建方法

class PagesController < ApplicationController
  before_action :set_page, only: [:show, :edit, :update, :destroy]

  def index
    @pages = Page.all
  end

  def show
  end

  def new
    @page = Page.new
  end

  def edit
  end

  def create
    @page = Page.new(page_params)

    respond_to do |format|
      if @page.save
        format.html { redirect_to @page, notice: 'Page was successfully created.'
 }
        format.json { render action: 'show', status: :created, location: @page }
      else
        format.html { render action: 'new' }
        format.json { render json: @page.errors, status: :unprocessable_entity }
      end
    end
  end

页面模型

class Page < ActiveRecord::Base

  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  has_many :likes
  has_many :users, :through => :likes
  has_many :events
end

用户模型

class User < ActiveRecord::Base

  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  has_many :likes
  has_many :pages, :through => :likes
end

0 个答案:

没有答案