将登录用户重定向到页面,同时允许他们仍然使用Devise访问主页

时间:2014-10-04 09:46:07

标签: ruby-on-rails devise

我正在玩(自学)轨道,我正在使用以下代码

class HomeController < ApplicationController

    def index
        if user_signed_in?
            redirect_to :controller=>'dashboard', :action => 'index'
        end
    end
end

作为上述代码的结果,当用户登录时,他们会被重定向到“仪表板”(这很棒),但他们无法访问主页。我怎样才能解决这个问题 ?我仍然是ruby / rails的新手,所以仍然适应语法等。

谢谢。

2 个答案:

答案 0 :(得分:0)

你做错了。您正在将登录用户的所有请求重定向到仪表板页面。因此,任何登录用户在尝试访问主页时都会被重定向到仪表板页面。您需要做的是当用户通过设备登录时,您已将其重定向到仪表板。请检查this

示例代码:

def after_sign_up_path_for(resource)
  signed_in_root_path(resource)
end

希望它有所帮助。

答案 1 :(得分:0)

仅在登录后将所有登录用户重定向到仪表板索引:

class ApplicationController < ActionController::Base protect_from_forgery
def after_sign_in_path_for(resource) sign_in_url = url_for(:action => 'index', :controller => 'dashboard') end end