2017-05-30 142 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 
相關問題