Ruby on rails 4 切换!轨道4发生巨变

Ruby on rails 4 切换!轨道4发生巨变,ruby-on-rails-4,toggle,persistence,rails-activerecord,Ruby On Rails 4,Toggle,Persistence,Rails Activerecord,为了记录而试图解开一个谜。 我们正在从Rails3.2升级到Rails4 在Rails 3.2代码中,我们有(嗯,有): 我意识到这并没有给你所有你需要的信息,但这里是错误的。你应该知道,can\u run\u on\u special是一个位字段,而不是一个官方属性,尽管我认为它实际上并不相关。我只是想让你知道我们为什么会出错: 1) Error: ObjectStatusTest#test_should_mark_object_as_not_eligible_to_run_on_specia

为了记录而试图解开一个谜。 我们正在从Rails3.2升级到Rails4

在Rails 3.2代码中,我们有(嗯,有):

我意识到这并没有给你所有你需要的信息,但这里是错误的。你应该知道,
can\u run\u on\u special
是一个位字段,而不是一个官方属性,尽管我认为它实际上并不相关。我只是想让你知道我们为什么会出错:

1) Error:
ObjectStatusTest#test_should_mark_object_as_not_eligible_to_run_on_special_for_specific_unschedule_reasons:

ActiveModel::MissingAttributeError: can't write unknown attribute     `can_run_on_special'
    config/initializers/acts_as_audited.rb:280:in `write_attribute_with_audit'
    app/models/object_status.rb:437:in `update_deal_amazon_eligibility'
    test/unit/object_status_test.rb:481:in `block in <class:ObjectStatusTest>'
    test/fast_test_helper.rb:99:in `call'
    test/fast_test_helper.rb:99:in `block in <class:TestCase>'
我怀疑是因为
切换
的操作类似于
update\u attribute
,它绕过了只返回
false
以保存属性的验证,因此,
切换不再工作,因为属性更新和保存不起作用。但我不确定情况是否如此。我希望在座的人能了解一下为什么这个ActiveRecord::Persistence方法(
toggle!
)在Rails 4中的操作可能会有所不同。或者,是更新“属性”和保存操作可能不同吗


非常感谢

我猜,在被审计的情况下,acts\u似乎正在参与进来,而不是位域/切换。这里有太多的厨师在偷东西。(比特域和被审计的行为)。

我猜,被审计的行为似乎正在参与进来,而不是比特域/切换。这里有太多的厨师在偷东西。(位字段,并作为审核的对象)

1) Error:
ObjectStatusTest#test_should_mark_object_as_not_eligible_to_run_on_special_for_specific_unschedule_reasons:

ActiveModel::MissingAttributeError: can't write unknown attribute     `can_run_on_special'
    config/initializers/acts_as_audited.rb:280:in `write_attribute_with_audit'
    app/models/object_status.rb:437:in `update_deal_amazon_eligibility'
    test/unit/object_status_test.rb:481:in `block in <class:ObjectStatusTest>'
    test/fast_test_helper.rb:99:in `call'
    test/fast_test_helper.rb:99:in `block in <class:TestCase>'
def update_object_special_eligibility
  if object && object.can_run_on_special? && ineligible_for_special?
  object.update_attributes! :can_run_on_special => false
end