我之前使用5.0.1
获得了我的rails应用程序,它运行良好。我升级到rails 5.1.1
,现在我有一堆错误的rails验证触发了消息:
- 必须存在
我发现BigBinary的一篇文章标题为:Rails 5 makes belongs_to association required by default。我认为它可能与此有关。我尝试通过执行以下操作选择退出此默认行为(如文章中所述):
# config/initializers/new_framework_defaults.rb
Rails.application.config.active_record.belongs_to_required_by_default = false
创建该文件后,我停止并重新启动服务器,但问题仍然存在。
有关从5.0.1
升级到5.1.1
后这些验证为何触发的任何想法?
答案 0 :(得分:1)
我明白了。 application.rb
文件必须在最后一个之后初始化文件加载,因为升级到rails 5.1.1
后就在那里了:
#config/application.rb
require_relative 'boot'
require 'rails/all'
Bundler.require(*Rails.groups)
module MyTestApp
class Application < Rails::Application
config.load_defaults 5.1 # must be taking precedence over my opt-out config file.
end
end
解决方案是删除该退出初始化程序文件,然后在config.load_defaults 5.1
行之后添加选择退出行:
#config/application.rb
require_relative 'boot'
require 'rails/all'
Bundler.require(*Rails.groups)
module MyTestApp
class Application < Rails::Application
config.load_defaults 5.1
Rails.application.config.active_record.belongs_to_required_by_default = false
end
end