设计其他用户字段,嵌套模型/属性和自定义路由

时间:2015-02-06 22:33:23

标签: ruby-on-rails devise

我已就此发布了一些相关问题,但现在我处于路障状态。我有这个系统工作得很好,然后我去添加它,现在我打破它真的很好!

首先我刚发现Gist,所以这里是我的代码:

https://gist.github.com/jasper502/065a63fde266fac1fbf5

这里的想法是我有一个用户登录,最终可以通过角色绑定到多个公司。

您通过自定义/注册路线上的Devise注册并填写公司信息等。自定义注册控制器在用户创建期间创建角色并设置一些其他属性。

当我尝试创建新用户/公司时,其他用户字段(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路由是否有效,但是现在看起来验证似乎完全被绕过了。如果我提交一份空白表格,我会收到各种错误,但如果我填写它,它现在工作正常。我越来越近,但显然在这里缺少一些小东西。

所以澄清一下:

  • 如果我创建自定义注册路由,则其他字段始终无法通过验证(即使数据正确)并且未创建嵌套对象
  • 如果我使用股票设计路线,如果您输入的数据正确,因此表格效果很好,因为验证中断并允许任何值
  • 我再一次确实有这个工作,但我不能轻易地将其重新扮演

1 个答案:

答案 0 :(得分:0)

我将路线从“设计/ ......”切换到“用户/ ...”,这似乎就是这个。

希望这有助于其他人。