Ошибка с вложенными атрибутами. Rails 5. не может написать неизвестный атрибут `address_id` - PullRequest
0 голосов
/ 09 марта 2020

Я использую принимает вложенные атрибуты на моей модели Patient. Мою форму я использую fields_for, чтобы соединить поля адресов с пациентами. Но мои поля отображаются на моем контроллере. Patients У меня есть по умолчанию новый код для соединения с полями @ Patient.build_address, но это вызывает эту ошибку.

Я использую Rails 5.2.4.1.

can't write unknown attribute `address_id` Extracted source (around line #18):


def new
  @patient = Patient.new
  @patient.build_address   
end 

1 Ответ

0 голосов
/ 09 марта 2020

Начать с ассоциации в обратном направлении. Вы хотите поместить внешний ключ в таблицу адресов.

rails g add_patient_to_addresses patient:references
rails db:migrate

И затем установить связь следующим образом:

class Patient < ApplicationRecord
  has_one :address
end

class Address < ApplicationRecord
  belongs_to :patient
end

Мало того, что это семантически правильно (адрес является собственностью пользователя, а не наоборот), но также позволяет при необходимости вы изменяете связь с одного на один на один на несколько (если у пользователя разные домашние и платежные адреса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...