导轨:简单update_attributes不起作用



我有一个属性为"turn_index"的"rota"模型。出于某种原因,update_attributes似乎不起作用。知道为什么吗?

  rota = Rota.create
  rota.turn_index.should == 0 -- passes
  rota.update_attributes(:turn_index=>1)
  rota.turn_index.should == 1 -- fails

轮换的架构为:

  create_table "rotas", :force => true do |t|
    t.string   "name"
    t.integer  "turn_index"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

轮换模型:

class Rota < ActiveRecord::Base
  has_many :rotazations
  has_many :users, :through => :rotazations
  has_many :invitations
  before_save :set_turn_index
  private
  def set_turn_index
    self.turn_index = 0
  end
end

before_save 上,您将turn_index设置为 0。您可以通过仅在创建时设置它来解决此问题:

before_save :set_turn_index, on: :create

或者在迁移中将 turn_index 的默认值设置为 0。

您的before_save始终将turn_index设置为 0

相关内容

  • 没有找到相关文章

最新更新