Ruby on rails 为用户设计和选择子域

Ruby on rails 为用户设计和选择子域,ruby-on-rails,devise,Ruby On Rails,Devise,我必须创建一些类型的用户友好的方式让用户登录到那里的位置 使用design进行身份验证。公司有子域字段。目前,如果用户以root用户身份登录,他们也必须登录到子域 理想情况下,用户进入登录屏幕,在他们登录后,我可以将他们重定向到公司索引控制器。当他们选择一家公司时,它会将他们重定向到该公司的子域并将他们登录到该子域中 是否有方法存储登录凭据并在选择子域后将其传递到子域 编辑- class Company < ActiveRecord::Base attr_accessible :n

我必须创建一些类型的用户友好的方式让用户登录到那里的位置

使用design进行身份验证。公司有子域字段。目前,如果用户以root用户身份登录,他们也必须登录到子域

理想情况下,用户进入登录屏幕,在他们登录后,我可以将他们重定向到公司索引控制器。当他们选择一家公司时,它会将他们重定向到该公司的子域并将他们登录到该子域中

是否有方法存储登录凭据并在选择子域后将其传递到子域

编辑-

class Company < ActiveRecord::Base
    attr_accessible :name, :subdomain, :parent_id
end

class CompaniesController < ApplicationController
  def show
    @company = Company.find_by_subdomain!(request.subdomain)
  end
end
class公司
区域经理等用户可以登录和管理许多公司。员工只能登录到单个公司


这样,经理可以看到其他商店/公司在做什么,但不能看到员工

我的回答与此类似。。。您希望Cookie在所有域上都有效

Yourapp::Application.config.session_store :cookie_store, :key => '_yourapp_session', :domain=>:all 

我以为这会奏效,但事实并非如此。如果有人登录到root_url,这将被视为已登录,但他们无法注销。什么也没发生。如果他们通过另一个子域登录,则不会继续表示他们已登录。还查看了其他注释。@pcasa——毫无疑问,这是可行的——如果设置为“将cookie验证为all”,则它存在于所有子域和主域中。您使用的是什么身份验证系统?设计1.1.5。Rails 3.0.3。Ruby 1.9.2p136。我确实关注过铁路欺诈。当用户注销时,我也面临同样的问题。有解决办法吗?