Как сохранить данные в нескольких таблицах в Rails - PullRequest
0 голосов
/ 25 декабря 2018

Я использую 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 голосов
/ 25 декабря 2018

Предполагая user belongs_to company и вы хотите сохранить пользователя и связанную с ним компанию из одной отправки формы, вы можете использовать fields_for для этого

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

Для этого потребуется accepts_nested_attributes_for :company для пользователя.

...