モデルが初期化されるとすぐに、モデルの属性を設定しようとしています。before_initialise、after_initialise、before_create、after_create を試しました。
私は何を間違っていますか?
describe "turn based system" do
before(:each) do
@user1 = Factory :user
@user2 = Factory :user
@rota = @user1.rotas.create
@rota.users << @user2
end
it "should be user1's turn at the beginning" do
@rota.current_turn.should == @user1.id --> fails
end
実装:
class Rota < ActiveRecord::Base
has_many :rotazations
has_many :users, :through => :rotazations
has_many :invitations
after_create :set_current_turn
private
def set_current_turn
if self.users.count > 0
self.current_turn = self.users[0].id
end
end
end
編集 次を使用してロタモデルを構築すると:
@rota = @user1.rotas.create(:current_turn => @user1.id)
それは機能します-しかし、私はコードを複製しているように感じます-私は常にcurrent_turnフィールドをオブジェクト作成者のIDにしたいと考えています。
ありがとう!