簡體   English   中英

無論如何,對於未登錄的用戶,是否要使用public / index.html,但對於Rails 3,則要使用home#index進行登錄?

[英]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#indexhome控制器, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM