Ruby on rails 资产预编译需要数据库连接

Ruby on rails 资产预编译需要数据库连接,ruby-on-rails,validation,heroku,virtual,assets,Ruby On Rails,Validation,Heroku,Virtual,Assets,使用虚拟属性验证时出现问题: validates :agreement, acceptance: true 删除它时,资产预编译不再需要数据库连接。 您知道如何保存验证和不在本地预编译资产吗?您有两个选择: 在config/application.rb中初始化应用程序时防止预编译资产 config.assets.initialize_on_precompile = false 或者允许对其进行初始化并添加heroku labs用户环境编译: heroku labs:enable user

使用虚拟属性验证时出现问题:

validates :agreement, acceptance: true  
删除它时,资产预编译不再需要数据库连接。
您知道如何保存验证和不在本地预编译资产吗?

您有两个选择:

在config/application.rb中初始化应用程序时防止预编译资产

config.assets.initialize_on_precompile = false
或者允许对其进行初始化并添加heroku labs用户环境编译:

heroku labs:enable user-env-compile -a myapp
阅读更多:


config.assets.initialize\on\u precompile=false
已在rails 4
heroku labs:enable user env compile-a myapp
中删除,但我想找出问题的原因。您最初的问题没有指定rails版本。您正在使用rails\u 12factor gem吗?rails 4,无资产组,rails\u 12factor gem在生产组中。添加虚拟属性验证资产后,一切正常,所有验证都正常(不是虚拟属性),预编译需要数据库连接。Rails正在查看该类是否具有与acceptance属性()匹配的属性,这就是它尝试查找架构的原因。这可能是Rails中的一个错误,因为它没有针对schema.rb执行此操作,而不是它似乎正在执行的操作,这会影响数据库。@x3qt您可以在验证之前添加属性访问器来添加虚拟属性,以避免此问题。这可能是Rails 4中的一个错误(功能?)。Rails github问题-