【发布时间】:2015-02-06 22:33:22
【问题描述】:
我已经发布了一些相关的问题,但现在我遇到了障碍。我让这个系统运行得很好,然后我去添加它,现在我把它弄坏了!
首先我刚刚发现了 Gist,所以这是我的代码:
https://gist.github.com/jasper502/065a63fde266fac1fbf5
这里的想法是我有一个用户登录,最终可以通过角色绑定到多个公司。
您在自定义 /register 路由上通过设计进行注册并填写公司信息等。自定义注册控制器在用户创建期间创建角色并设置一些其他属性。
当我尝试创建新用户/公司时,附加用户字段(name_first 和 name_last)总是无法通过验证,无论它们实际上是否有效。嵌套的公司字段根本不验证。如果我输入电子邮件和密码字段,则只有表单有效,但只会创建用户记录。
对我来说,似乎根本没有处理自定义注册控制器,因为它似乎不想允许我在 sign_up_params 中指定的其他参数。
在反复试验的基础上,我尝试了这个:
devise_for :users, :skip => [:sessions], :controllers => { :registrations => 'users/registrations', :sessions => 'users/sessions' }
as :user do
get '/signin' => 'devise/sessions#new', :as => :new_user_session
post '/signin' => 'devise/sessions#create', :as => :user_session
delete '/signout' => 'devise/sessions#destroy', :as => :destroy_user_session
end
我想看看正常的设计路线是否有效,除了现在似乎完全绕过了验证。如果我提交一个空白表格,我会收到各种错误,但如果我填写它,它现在可以正常工作了。我正在接近,但显然这里缺少一些小东西。
所以澄清一下:
- 如果我创建自定义注册路由,附加字段始终无法通过验证(即使数据正确)并且不会创建嵌套对象
- 如果我使用库存的 Devise 路由,如果您输入的数据正确,则表单效果很好,因为验证中断并允许任何值
- 我确实有这个工作,但我不能轻松地扮演这个角色
【问题讨论】:
标签: ruby-on-rails devise