[英]Is there anyway to use a public/index.html for non-logged in users, but then home#index for logged in - in Rails 3?
因此,當訪問者訪問/
且未登錄時,他們將被發送到public/index.html
。
但是,當訪問者登錄並訪問/
他們將被發送到home#index
即home
控制器, index
操作。
無論如何,沒有將public / index.html轉換為erb文件或成為視圖?
公共文件夾中的名為index.html
文件將始終覆蓋路由。
但是,您可以重命名index.html
,將root
指向您的home
控制器,如果用戶未登錄,則只需在控制器redirect_to '/new_name.html'
。
編輯:
由於請求者正在使用devise並過濾其家庭控制器中的所有動作,因此第二次重定向無效。 授權過濾器會將他發送到登錄頁面(這是權限被拒絕時的默認操作)。
我們解決了這一問題,即不對index
操作進行過濾,從而為我們自己的重定向掃清了道路:
# home controller
before_filter :authenticate_user!, :except => [:index]
before_filter :redirect_to_marketing
# stuff
private
def
unless user_signed_in?
redirect_to '/marketing.html'
end
end
public / index.html將覆蓋任何根路由。 因此,可能無法做您需要的事情。
我建議您提取根頁面的公共部分,並將依賴於登錄狀態的所有功能都轉換成可以有條件加載的部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.