NoMethodError (неопределенный метод `отправитель 'для)
Во-первых, ошибка вызвана тем, что у вас есть has_many
отношение к sender
, поэтому оно должно быть senders
, а не sender
address.senders.build
Когда отправитель регистрируется для новой учетной записи, он создает адрес как
Что ж. Я пытаюсь построить что-то в моем контроллере рельсов, посредством чего
при создании нового адреса он связывается со столбцом address_id
отправителя.
Во-вторых, ваш подход неверен. Вы можете использовать доступные методы для связи belongs_to
. Например, в вашей ситуации вы можете позвонить @sender.build_address
address = @sender.build_address(address_params)
Метод build_association
возвращает новый объект связанного
тип. Этот объект будет создан из переданных атрибутов, и
ссылка через внешний ключ этого объекта будет установлена , но
связанный объект еще не будет сохранен.
Итак, наконец, создание будет выглядеть как показано ниже (после удаления ненужного кода)
def create
address = @sender.build_address(address_params)
if address.save
render json: {status: 'address created successfully'}, status: :created
else
render json: { errors: address.errors.full_messages }, status: :bad_request
end
end