В Rails 5 при указании belongs_to в модели, невозможно будет сохранить запись без наличия ассоциированного объекта.
Раньше эта опция также существовала, и теперь она включена по дефолту.
Рассмотрим пример:
1 2 3 4 5 6 7 8 9 10 11 12 | |
В Rails 4.x добиться такого поведения можно, указав дополнительную опцию в вызов метода
1 2 3 4 5 6 7 8 9 10 11 12 | |
Вернуть дефолтное поведение в Rails 5 можно, передав опцию optional: true в вызове метода
1 2 3 4 5 6 | |
Для того чтобы вернуть старое поведение для всего проекта, идем в папку initializers нашего проекта,
и видим что в Rails 5 появился новый файл под названием active_record_belongs_to_required_by_default.rb
И именно в нем видим настройку, которая отвечает за новое поведение. Мы можем установить ее в false,
чтобы отключить его.
1
| |
Напомню, что данный файл создается при новой установке Rails 5, в том случае если вы обновляете Rails до версии 5, создайте его вручную.