当我学习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测试,我需要再增加两页才能进行注册。
所以在我的控制器中,这就是我要修改的方式:
class Users::RegistrationsController < Devise::RegistrationsController
def new
end
# ADD BELOW
def new_control
end
def new_test
end
end
但我无法弄清楚如何修改我的路由,以便在旧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
代码创建的所有其他可爱路线,例如create
和edit
操作
答案 0 :(得分:0)
您可以像在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