Я обновляю приложение Rails 4.2.6 до 5.0.0 (может быть, я попробую 5.1 или 5.2, если все пойдет хорошо).
В 5.0.0 введена новая конфигурация Active Record по умолчанию, которую я вижу в моем config / new_framework_default.rb:
# Require `belongs_to` associations by default. Previous versions had false.
Rails.application.config.active_record.belongs_to_required_by_default = true
Таким образом, по умолчанию каждая belongs_to
ассоциация будет проверяться на наличие по умолчанию.
Моя проблема:
Мне бы очень хотелось, чтобы эта конфигурация была в false
, потому что я бы предпочел проверить наличие поля внешнего ключа. Например:
class Discount < ApplicationRecord
belongs_to :customer, :class_name => 'Customer', :foreign_key => :customer_id
validates :customer_id, presence: true
end
Кроме того, в моем приложении +250 моделей и +4000 belongs_to
ассоциаций. Таким образом, это может занять некоторое время для меня и может стать серьезным изменением для моего приложения.
Вопросы:
- Что-то не так, если я установил для конфигурации значение false? И держите это так в течение неопределенного периода времени.
- Будет ли это сломано в будущих версиях Rails? > 5.0.0
Спасибо!