2010-02-04 26 views
3

我希望我的应用程序在首页上显示不同的数据,具体取决于用户是否已经登录。有条件的root_url(索引)

def index 

    if current_user 
    # render another controllers action 
    else 
    # render another controllers action 
    end 

end 

我可以通过使用render_component来实现。但是它已经过时了一段时间。尽管我仍然可以将它用作插件,但如果有人有更好的方法,我很感兴趣。 请注意,直接渲染另一个控制器的视图不是一个选项。

谢谢。

回答

3

只需使用index方法作为要呈现的特定视图的公共代理即可。

def index 
    if user? 
    logged_in 
    else 
    logged_out 
    end 
end 

private 

def logged_in 
    # stuff 
    render :action => "logged_in" 
end 

def logged_out 
    # stuff 
    render :action => "logged_out" 
end  
1

如果它是一个相对较小的数据部分,我可能会在视图助手中这样做。

+0

感谢您的建议,但它不适用于我的应用程序。 – vise 2010-02-05 11:16:51

+0

解释更多关于你的确切情况的信息可能是有用的:好像你正在寻找做一个redirect_to不同的动作和一个视图帮助器之间的事情。 – 2010-02-05 19:51:15