核心網站時,我使用的用戶認證標準設計配置。在routes.rb中:設計和CURRENT_USER問題使用命名空間
devise_for :users
現在,我有一個名稱空間,讓稱之爲「幀」,經由遠程頁上的小窗口(或iframe)有些控制器用於顯示的一些看法。 我需要在框架內進行身份驗證的用戶,所以我嵌套devise_for聲明:
namespace :frame do
devise_for :users
resources :albums, :only => :show do
resources :photos, :only => [:new, :create, :show]
end
end
爲了使整個事情的工作,我需要建立適當的控制器:
class Frame::SessionsController < ::Devise::SessionsController
layout "frame"
end
現在我使用以下路徑以顯示錶格:
new_frame_user_session_path
然而,當我通過框架登錄時,* current_user *爲零,而我有* current_frame_user *。這很糟糕,因爲通過核心網站(* current_user *)登錄的用戶應該可以通過框架和反向訪問(在一個瀏覽器中)。
是否有一個小調整才達到它,或者我應該改變整個的方法呢?謝謝你的幫助。
我懷疑是Rails會處理iframe和周圍的頁面,好像他們是兩個不同的瀏覽器,所以你將不能夠從框架的,反之亦然訪問頁面的'current_user'。只是一個預感。 – Russell
其實iframe在本任務中與我無關(我使用通過javascript打開的窗口)。當我在覈心站點上登錄時,可以在該窗口中訪問current_user。 –
爲什麼要在第一個地方添加命名空間?如果您只想擁有一個獨特的URL,則可以向devise_for調用添加路徑選項...您可以通過將devise_for的控制器選項添加到單獨的名稱空間中,從而將控制器保留在獨立的名稱空間中。 – HakonB