如何解决如何在Rails 3中更改Devise的根控制器路径?
| 我有一个使用Devise的Rails 3应用程序。我该如何将devise的根控制器更改为应用程序的根控制器以外的其他东西。 在我的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?
谢谢!
提姆
解决方法
在为登录页面定义根路由并在其中传递子域时,也许需要使用
devise_scope
?只是一个猜测。
https://github.com/plataformatec/devise/blob/master/README.rdoc中的“配置路由”可能会有帮助。
, 我找到了解决方案。我在范围内添加了devise_for
:
scope :module => \'control\' do
constraints :subdomain => \'control\' do
devise_for :users,:module => \'devise\'
resources :offers
root :to => \'offers#index\'
end
end
您需要添加“ 5”,因为模块已更改为名称空间的名称,因此必须将其设置回“ devise”。现在,我可以使用control
子域(例如control.app.com/users/sign_in、control.app.com/users/sign_up等)访问所有的devise动作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。