我在注册表单中添加了一个基于不同模型的字段,请参阅如何将嵌套属性与设计模型一起用于血淋淋的细节.这部分工作正常.
现在的问题是当我保存时,它在注册控制器的创建操作中失败,该操作由设备提供,Activerecord::UnknownAttributeError在该字段(公司)上.
我假设我需要覆盖注册控制器,还是有更好/更简单的方法我应该接近这个?
我有与使用Devise创建其他相关模型(没有答案)相同的问题.
我已经覆盖了创建新用户的设计视图并添加了公司名称,我已将模型更改为使用accepts_nested_attributes_for
没有错误,但它没有添加嵌套记录,我没有可以修改请求的控制器.
我有以下内容(缩短为使其可读):
的routes.rb
map.devise_for :users
map.resources :users, :has_many => :companies
Run Code Online (Sandbox Code Playgroud)
user.rb
has_many :companies
accepts_nested_attributes_for :companies
devise :registerable ... etc
Run Code Online (Sandbox Code Playgroud)
company.rb
belongs_to :user
Run Code Online (Sandbox Code Playgroud)
new.html.erb
...
<% form_for resource_name, resource, :url => registration_path(resource_name) do |f| %>
...
<% f.fields_for :company do |company_form| %>
<p><%= company_form.label :name %></p>
<p><%= company_form.text_field :name %></p>
<% end %>
...
Run Code Online (Sandbox Code Playgroud)
更新:我没有添加:company到User模型中的attr_accessible列表.