【问题标题】:Can't create a new Spree app: "undefined method `raise_in_transactional_callbacks='"无法创建新的 Spree 应用程序:“未定义的方法 `raise_in_transactional_callbacks='”
【发布时间】:2014-12-17 13:08:38
【问题描述】:

几个月前我遇到了这个问题,posted it on Spree's GitHub page,然后我自己想出了解决方案并将其发布在同一问题上。两个月后,我仍然从有相同错误消息的 Google 员工那里收到关于同一问题的 cmets,所以我认为值得在这个网站上发布我的解决方案,以防万一有人遇到同样的问题但没有寻找在 GitHub 上。

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

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

下面的解决方案...

【问题讨论】:

标签: ruby-on-rails activerecord transactions spree


【解决方案1】:

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

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

【讨论】:

  • +1。这为我修复了它,但我很好奇为什么它现在默认存在。是否有可能删除它实际上是错误的做法?
  • 好吧,如果你使用的是 Rails
猜你喜欢
  • 1970-01-01
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多