我在我的应用程序中使用Devise进行身份验证,并获得了一个名为“用户”的模型。我为公司信息创建了另一个模型。我使用参考生成了迁移,一切正常。
我想在同一注册视图中将用户信息添加到用户表,将公司信息添加到公司表。
用户表和公司表也都具有与“名称”相同的字段。
我尝试将其指定为;
<%= f.text_field :company["name"], autocomplete: "company_name" %>
<%= f.text_field :company[:name], autocomplete: "company_name" %>
<%= f.text_field :companies[:name], autocomplete: "company_name" %>
我得到了错误;
undefined method `' for #<User:0x00007fd5588cb588>
no implicit conversion of Symbol into Integer
我认为我应该以某种方式重写devise_controller,但我想学习此类情况的一般做法。
总和:我想将数据保存到数据库中具有相同列名的不同表中。
答案 0 :(得分:2)
假设user belongs_to company
并且您想从一个表单提交中保存用户及其关联公司,则可以为此使用fields_for
<%= f.fields_for :company do |cf| %>
<%= cf.text_field :name %>
<% end %>
这将需要用户accepts_nested_attributes_for :company
。