2017-05-30 184 views
1

我以前有我的rails应用程序使用5.0.1,它工作得很好。我升级到轨5.1.1,现在我有一堆不正确轨验证与消息触发的:升级到rails 5.1.1后必须存在验证错误必须存在验证

  • 必须存在

我发现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

我想通了。该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 
相关问题