繁体   English   中英

相同设计模型的Rails多个URI模式

[英]Rails Multiple URI Pattern for the same Devise Model

我在项目中使用的是Devise,最初是从2013年使用API​​版本1(api / v1 /)启动它。 我不必创建版本2(api / v2 /),并且在解决如何创建新的v2路由以进行设计时遇到了问题。

/ api / v1 /和/ api / v2 /都指向相同的用户模型,但是我让他们通过不同的控制器。 目前,我正在尝试以下操作,但是出现消息“无效的路由名称,已经在使用:'new_user_session'”。

控制器设置

/ api / v1 /的作用域路由

scope '/api' do
   scope '/v1' do
       devise_for :users, :controllers => {:registrations => "devise/v1/users_registrations",
                                      :sessions => "devise/v1/users_sessions",
                                      :passwords => "devise/v1/users_passwords"}
   end
end

/ api / v2 /的作用域路由

scope '/api' do
   scope '/v2' do
       devise_for :users, :controllers => {:registrations => "devise/v2/users_registrations",
                                      :sessions => "devise/v2/users_sessions",
                                      :passwords => "devise/v2users_passwords"}
   end

任何和所有帮助将不胜感激。 谢谢

您需要在旁边或范围内使用namespace

现在,这些作用域将更改文件本身的位置,但不会更新实际的路径名称,因此会出现重复的错误。

IE

scope :api do
   namespace :v1 do
       devise_for :users, controllers: {registrations: "devise/v1/users_registrations",
                                      sessions: "devise/v1/users_sessions",
                                      passwords: "devise/v1/users_passwords"}
   end
end



scope :api do
   namespace :v2 do
       devise_for :users, controllers: {registrations: "devise/v2/users_registrations",
                                      sessions: "devise/v2/users_sessions",
                                      passwords: "devise/v2/users_passwords"}
   end
end

那么您的路线将是new_v1_user_sessionnew_v2_user_session ,等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM