无法创建新的Spree应用程序:“未定义的方法`raise_in_transactional_callbacks =’”

我几个月前就遇到过这个问题, 将它发布在Spree的GitHub页面上 ,然后自己想出了解决方案并将其发布在同一个问题上。 两个月后,我仍然会收到来自Google员工同样问题的评论,因为我有同样的错误信息,所以我觉得值得在这个网站上发布我的解决方案,以防万一有人遇到同样的问题但是看不出来在GitHub上。

问题:尝试按照Spree文档中的确切说明创建一个全新的Spree应用程序,当您尝试运行spree install --auto-accept时,会出现以下错误spree install --auto-acceptrails g spree:install

 undefined method `raise_in_transactional_callbacks=' for ActiveRecord::Base:Class (NoMethodError) 

以下方案…

问题:我用rails new创建了一个新的rails应用程序,它使用rails 4.2.0beta自动创建了一个应用程序。 然后我遇到了gem不兼容的问题,所以我改变了几个gem的版本号,包括将Rails降级回4.1.8

但是配置设置raise_in_transactional_callbacks 在Rails 4.2.0中新的 ,所以在早期版本的Rails中它会引发错误。 如果您收到此错误消息,则需要从config/application.rb删除config.active_record.raise_in_transactional_callbacks = true行。