2010-02-04 54 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