Customize part of devise custom routes, 基本上我不知道Rails routing =(

Customize part of devise custom routes, basically I don't know Rails routing =(

我在学习Rails路由时感觉我的大脑离开了大楼......我想不通。

所以我定制了一些设计控制器,因此我更新了路由文件,如下所示:

 devise_for :users, controllers: { 
    registrations: "users/registrations", 
    sessions: "users/sessions", 
    passwords: "users/passwords"
 }

效果很好。它给了我这样的路径:

new_user_registration GET    /users/sign_up(.:format)         users/registrations#new

现在的挑战是我想 运行 使用 Google Analytics 进行 A/B 测试,我需要另外 2 页才能注册。

所以在我的控制器中,这就是我要修改的方式:

class Users::RegistrationsController < Devise::RegistrationsController

  def new
  end

  # ADD BELOW
  def new_control
  end

  def new_test
  end
end

但我不知道如何修改我的路由,以便我在旧路由之外还有这 2 条新路由 new_user_registration_path(请注意,这些新路由的命名路径助手并不重要,所以对我来说很重要,因为我从来没有真正使用过它)

GET    /users/sign_up/control(.:format)         users/registrations#new_control
GET    /users/sign_up/test(.:format)         users/registrations#new_test

请注意,我想保留 devise_for 代码创建的所有其他可爱路线,例如 createedit 操作

您可以像在 rails 应用程序中一样正常访问指定路线。您唯一需要做的就是将路线包裹在 device_scope 中。当您尝试在不添加 device_scope.

的情况下访问路由时,这也会显示为警告

所以在你的情况下路线应该是这样的:

devise_scope :user do
  get 'users/sign_up/control' => 'users/registrations#new_control'
  get 'users/sign_up/test' => 'users/registrations#new_test'
end