2012-05-05 2 views
0

"turn_index"속성을 가진 "rota"모델이 있습니다. 어떤 이유로 update_attributes가 작동하지 않는 것 같습니다. 어떤 단서?레일즈 : 간단한 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 
+0

로타 모델은 어떻게 생겼습니까? – natedavisolds

+0

업데이트 된 질문 – Karan

답변

0

0으로, 당신은 turn_index을 설정하는 0으로 설정하십시오.이 문제는 settin으로 만 해결할 수 있습니다. 생성시 :

before_save :set_turn_index, on: :create 

또는 마이 그 레이션에서 turn_index의 기본값을 0으로 설정하십시오.

0

귀하의 before_save 항상 설정하는 것입니다 turn_indexbefore_save

+0

오, 젠장, 그게 믿어. – Karan