На основном веб-сайте я использую стандартную конфигурацию Devise для аутентификации пользователя.В rout.rb:
devise_for :users
Теперь у меня есть пространство имен, давайте назовем его «frame», которое используется для отображения некоторых представлений через некоторые контроллеры в небольшом окне (или 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 * равен nil, и вместо этого у меня есть * current_frame_user *.Это плохо, потому что пользователь, вошедший в систему через основной веб-сайт (* current_user *), должен быть доступен через фрейм и обратно (в одном браузере).
Есть ли небольшая настройка для достижения этого, или я должен изменить весь подход?Спасибо за помощь.