0

我有一个带有属性“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

rota 的架构是:

  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
4

2 回答 2

0

before_save总是设置turn_index为 0

于 2012-05-05T15:33:48.727 回答
0

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

before_save :set_turn_index, on: :create

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

于 2012-05-05T15:36:16.330 回答