À ma connaissance, la nouvelle valeur par défaut dans les rails 5 nécessite Ce comportement est-il normal? Je veux dire que je ne devrais-je pas obtenir l'erreur des rails? P>
BTW, lorsque j'ajoute la validation de la présence pour le champ, cela fonctionne comme prévu. P> appartient à l'appartenance de code> d'associations à présenter. J'ai fait un modèle avec cette association, mais le problème est que je n'obtiens pas une erreur de validation de la présence lorsque le champ associé est vide. Au lieu de cela, j'ai une erreur de validation nulle de base de données depuis que je définis la colonne
_id code> ne doit pas être null. (Pg :: notnullviolation parce que j'utilise postgres) p>
3 Réponses :
nouveaux rails 5 applications sont livrées avec une nouvelle initialiseur dans
# Be sure to restart your server when you modify this file. # Require `belongs_to` associations by default. This is a new Rails 5.0 # default, so it is introduced as a configuration option to ensure that apps # made on earlier versions of Rails are not affected when upgrading. Rails.application.config.active_record.belongs_to_required_by_default = true
rails.application.config.active_record.belongs_to_required_b y_default = true code> est toujours dans le
New_framework_default.rb code>. Donc, je suppose que ce n'est pas le problème.
Selon le problème re Comportement étrange de la configuration appartient à l'appartenance_to_required_by_default , il semble que l'un des Vos autres gemmes interviennent dans Un de la solution de contournement au problème consiste à déplacer la ligne p> des initialisateurs directement dans Cela a fonctionné pour moi en douceur. p> p> Activerecord :: Base Code> et provoque le bogue.
application.rb code>. p>
Vous n'avez rien à faire si vous avez des rails 5.1. Assurez-vous simplement que config.load_defaults 5.1 code> est dans votre application.rb, qui correspond aux nouvelles applications générées ( référence )
Je fixe aciverecord :: base.belongs_to_required_by_default = false code> dans mon initialiseur
FYI Vous pouvez également définir appréhension_to_required_by_default = false code> dans votre
ApplicationRecord code>
J'ai fait face au même problème. P>
Vous pouvez déplacer p>
à aidé pour moi! p> config.active_record.belongs_to_required_by_default = false code> p>
config / environnements / nécessaire_environment.rb code> ou à
config / application.rb code> p> p>