Vì vậy, tôi đang cố gắng đặt giá trị mặc định của cột 'phiếu bầu' thành 0, nhưng khi tôi tạo trường hợp câu trả lời trong đường ray c hoặc thông qua kiểm tra đơn vị, giá trị phiếu luôn là nil
. Bất kỳ ý tưởng về lý do tại sao điều này không hoạt động?Đặt giá trị số nguyên mặc định trong activerecord
Tôi đã thay đổi sự di cư như vậy:
class AddVotesToAnswers < ActiveRecord::Migration
def change
add_column :answers, :votes, :integer, default: 0
end
end
Dưới đây là mô hình:
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
thử nghiệm Spec
require '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
Có thể là 1 trong 2 điều: 1), bạn cần phải chạy 'rake db : test: preparation' để lấy giá trị mặc định trong cơ sở dữ liệu thử nghiệm của bạn. 2) bạn đã chỉnh sửa giá trị mặc định trong quá trình di chuyển của mình sau khi chạy nó và nên 'rake db: migrate: redo' –