如何在Rails 3中更改Devise的根控制器路径?

时间:2011-05-30 20:17:16

标签: ruby-on-rails ruby-on-rails-3 devise

我有一个使用Devise的Rails 3应用程序。如何将设备的根控制器更改为应用程序的根控制器以外的其他控制器。

在我的routes.rb文件中,我将应用程序根设置为root :to => 'home#index',因此http://app.com/users/sign_in将调用设备表单,这不是我想要的。

我在routes.rb中也有以下内容(这是我想要使用的路由):

  scope :module => 'control' do
    constraints :subdomain => 'control' do
      resources :offers
      root :to => 'offers#index'
    end
  end

如何指出设计使用上述路径(control.app.com),以便用户登录位于http://control.app.com/users/sign_in

谢谢!

2 个答案:

答案 0 :(得分:1)

在为登录页面定义根路由时,可能需要使用devise_scope并在其中传递子域名?只是一个猜测。

https://github.com/plataformatec/devise/blob/master/README.rdoc中的“配置路线”可能会有所帮助。

答案 1 :(得分:0)

我找到了解决方案。我在范围内添加了devise_for,如下所示:

  scope :module => 'control' do
    constraints :subdomain => 'control' do
      devise_for :users, :module => 'devise'
      resources :offers
      root :to => 'offers#index'
    end
  end

您需要添加:module => 'devise',因为模块已更改为命名空间的名称,因此您必须将其设置回“设计”。现在,我可以使用control子域访问所有设计操作(例如,control.app.com / users / sign_in,control.app.com / users / sign_up等)