7

したがって、「投票」列のデフォルト値を 0 に設定しようとしていますが、レール c または単体テストで回答のインスタンスを作成すると、投票値は常にnil. これが機能しない理由についてのアイデアはありますか?

移行を次のように変更しました。

class AddVotesToAnswers < ActiveRecord::Migration
  def change
    add_column :answers, :votes, :integer, default: 0
  end
end

モデルは次のとおりです。

class Answer < ActiveRecord::Base
  attr_accessible :is_correct, :question_id, :title, :sms_answer_code, :votes

  belongs_to :question

  def upvote
    self.votes += 1
  end

end

テスト仕様

「spec_helper」が必要

describe Answer do
  before do
    @answer = Answer.make!
  end

  it "should have a default vote value of zero" do
    binding.pry
    @answer.votes.should eq(0)
  end

end
4

2 に答える 2

1

次のように言う必要があります。 add_column :answers, :votes, :integer, :default => 0

于 2013-06-10T02:15:46.497 に答える