如何将数据保存到Rails中的多个表

时间:2018-12-25 11:29:29

标签: ruby-on-rails activerecord devise

我在我的应用程序中使用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,但我想学习此类情况的一般做法。

总和:我想将数据保存到数据库中具有相同列名的不同表中。

1 个答案:

答案 0 :(得分:2)

假设user belongs_to company并且您想从一个表单提交中保存用户及其关联公司,则可以为此使用fields_for

<%= f.fields_for :company do |cf| %>
  <%= cf.text_field :name %>
<% end %>

这将需要用户accepts_nested_attributes_for :company