用户登录后页面重定向

问题描述:

我希望能够在登录后立即将用户重定向到其他主页(此部分正在工作),但我仍然希望登录的用户能够访问如果他们想要索引饲料。目前,他们只能看到favourites_show_path,而不能看到@guidelines = Guideline.order(:title).all。有没有办法(无需构建第二个索引操作和视图)在登录后返回主页以直接访问favourites_show_path,但仍然能够看到@guidelines = Guideline.order(:title).all?用户登录后页面重定向

def index 
    if params[:search].present? 
    @search = Sunspot.search(Guideline) do 
     fulltext params[:search] 
    end 
    @guidelines = @search.results 
    else 
    redirect_to favourites_show_path, :action => 'index' and return if current_user 
    @guidelines = Guideline.order(:title).all 
    end 
+1

没有。他们将永远被重定向。你不能在登录操作上做重定向吗? – jvnill 2013-02-21 01:15:01

+0

我使用设计 - 你可能是对的,我应该在另一个行动上做这件事,因为我仍然希望索引行动起作用,因为它是 – tessad 2013-02-21 01:33:45

只需推动@guidelines...出的条件,并重新命名的搜索结果符号:

def index 
    @guidelines = Guideline.order(:title).all 
    if params[:search].present? 
    @search = Sunspot.search(Guideline) do 
     fulltext params[:search] 
    end 
    @results = @search.results 
    else 
    redirect_to favourites_show_path, :action => 'index' and return if current_user 
    end 
end 
+0

谢谢,但这似乎并不奏效。我不确定为什么搜索结果符号需要更改。重点在于,如果你搜索过了,那么符号准则将只是搜索结果,否则符号准则将成为所有准则。您提到的方式仍会将用户重定向到favourites_show_path(如果他们已登录),因此不会允许他们查看符号准则(除非他们运行搜索)。 – tessad 2013-02-21 01:24:24

+0

我明白了。所以'@指南'是一切或搜索结果?他们将显示在'favourites_show_path'上? – 2013-02-21 01:29:28

+0

是的,@guidelines是一切或搜索结果。它们将显示在guidelines_path上。立即登录后,我希望它指向favourites_show_path(它目前的做法),但我也想要current_user能够看到guidelines_path(对于所有指南),如果他们想。 – tessad 2013-02-21 01:32:34

谢谢,我已经解决了这一点。建议我应该将重定向添加到登录操作。所以,我从我的指标作用,除去

redirect_to favourites_show_path, :action => 'index' and return if current_user 

,而是加入到我的application_controller.rb

def after_sign_in_path_for(resource) 
favourites_show_path 
end