Rails 6: Как условно проверить наличие ассоциации? - PullRequest
0 голосов
/ 17 июня 2020

У меня две следующие модели:

class Offer < ApplicationRecord
  has_many :bookings
end

class Booking < ApplicationRecord
  belongs_to :offer
end

Когда я пытаюсь сохранить объект Booking без offer_id, Rails выдает ошибку проверки «Требуется предложение».

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

Означает ли это, что Rails 6 проверяет наличие всех ассоциаций по умолчанию? И если да, как я могу сделать такую ​​проверку условной?

1 Ответ

0 голосов
/ 17 июня 2020

Начиная с Rails 5, belongs_to по умолчанию добавляет проверку присутствия. Вы можете отключить это поведение в application.rb с помощью:

config.active_record.belongs_to_required_by_default = false

Или, если вы хотите, чтобы оно было необязательным только в этом belongs_to, вы можете передать параметр optional в own_to:

belongs_to :offer, optional: true
...