【问题标题】:Devise is only routing one of the two user Models correctly设计仅正确路由两个用户模型之一
【发布时间】:2015-01-15 21:24:51
【问题描述】:

我似乎无法弄清楚为什么 Devise 会退回到其中一个用户模型的 gem 视图。

这是我的路线和链接,用于连接到注册表单的新操作。

可用的设计路线

                 POST   /registration.biz_user(.:format)             devise/registrations#create
           biz_users_sign_out GET    /biz_users/sign_out(.:format)                devise/sessions#destroy
         new_biz_user_session GET    /biz_users/login(.:format)                   devise/sessions#new
             biz_user_session POST   /biz_users/login(.:format)                   devise/sessions#create
     destroy_biz_user_session DELETE /biz_users/logout(.:format)                  devise/sessions#destroy
            biz_user_password POST   /biz_users/password(.:format)                devise/passwords#create
        new_biz_user_password GET    /biz_users/password/new(.:format)            devise/passwords#new
       edit_biz_user_password GET    /biz_users/password/edit(.:format)           devise/passwords#edit
                              PATCH  /biz_users/password(.:format)                devise/passwords#update
                              PUT    /biz_users/password(.:format)                devise/passwords#update
 cancel_biz_user_registration GET    /biz_users/cancel(.:format)                  devise/registrations#cancel
        biz_user_registration POST   /biz_users(.:format)                         devise/registrations#create
    new_biz_user_registration GET    /biz_users/register(.:format)                devise/registrations#new
   edit_biz_user_registration GET    /biz_users/edit(.:format)                    devise/registrations#edit
                              PATCH  /biz_users(.:format)                         devise/registrations#update
                              PUT    /biz_users(.:format)                         devise/registrations#update
                              DELETE /biz_users(.:format)                         devise/registrations#destroy

注册路径/URL链接

<%= link_to 'Sign Up', new_biz_user_registration_path, class: 'button success large expand' %> 

此用户模型的视图位于 Views/bizusers/registrations/..etc。

devise_for :biz_users, path_names: { sign_in: 'login', sign_out: 'logout', sign_up: 'register' }
  devise_for :users, path_names: { sign_in: 'login', sign_out: 'logout', sign_up: 'register' }
  devise_for :admins, path_names: { sign_in: 'login', sign_out: 'logout', sign_up: 'register' }

【问题讨论】:

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


    【解决方案1】:

    你的型号是什么?因为您仅为 biz_users 创建了路由。基本上,如果您有许多设计模型,您可以为每个模型创建路线。例如,如果您有模型用户和管理员,您应该这样做:

    devise_for :users
    devise_for :admins
    

    现在在 rake routes to 之后应该会看到两个模型的路径。

    【讨论】:

    • devise_for :biz_users devise_for :users 我刚才从 routes.rb 文件中删除了 devise_scope 路由。
    • :users 模型正在路由到我所看到的适当视图。
    • users 和 admins 是例子,如果你的模型是 users 和 biz_users 你应该做 device_for :users 和 device_for :biz_users,通常你应该为每个设计模型做 device_for。现在,如果您制作 rake 路线,您应该获得每个模型的路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2023-01-26
    • 2013-11-13
    • 1970-01-01
    相关资源
    最近更新 更多