升级到rails 5.1.1后,必须存在不正确的验证

时间:2017-05-30 16:12:15

标签: ruby-on-rails ruby

我之前使用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后这些验证为何触发的任何想法?

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