Rails Heroku deploy / initializer / belongs_to_required_by_default = false没有被尊重?

时间:2017-11-08 03:25:54

标签: ruby-on-rails heroku ruby-on-rails-5 belongs-to

我遇到了一个非常奇怪的案例,对于我的生活我无法弄清楚:

我在Heroku上有一个Rails5应用程序,在基于belongs_to外键列上的nil值的模型中,在生产中(而不是在本地开发或测试中)抛出验证错误。

我很清楚每个this post的Rails5行为发生了变化,默认情况下需要belongs_to,但我通过在{Rails.application.config.active_record.belongs_to_required_by_default = false 中设置new_framework_defaults_5_1.rb将其关闭为验证要求{1}}初始化程序 - 我在几个月前完成Rails5升级后添加了这个文件/行,并且自从...直到现在这个行为刚刚开始在我最近的Heroku部署中发生时才开始工作。

特别奇怪的是:

  1. 我没有更改相关模型或初始化文件中的任何代码 - 这个回归开始发生在一个不相关的功能部署上(我已经仔细检查了提交以确保更加正确)
  2. 我无法在开发中进行本地复制 - 它与预期的工作方式完全相同,而模型验证不需要belongs_to
  3. 我似乎无法在制作rails console中复制 - m = Model.new; m.valid?返回true(尽管有nil belongs_to列ids)这不是由web app触发的行为¯\ _(ツ)_ /¯
  4. 所以我感到难过/惊恐,并想知道是否有人有智慧。感觉它必须与Heroku如何/如果在启动期间加载相关的初始化程序文件(最近可能已更改)有关?

0 个答案:

没有答案