Quindi sto cercando di impostare un valore predefinito di una colonna 'voti' su 0, ma quando creo istanze di risposte in rotaie c attraverso test di unità, il valore di voti è sempre nil
. Qualche idea sul perché questo non funziona?Impostazione valori interi predefiniti in activerecord
ho cambiato la migrazione in questo modo:
class AddVotesToAnswers < ActiveRecord::Migration
def change
add_column :answers, :votes, :integer, default: 0
end
end
Ecco il modello:
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
test Spec
richiedono '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
Potrebbe essere 1 di 2 cose: 1) è necessario eseguire 'rake db : test: prepara' per ottenere il valore predefinito nel database di test. 2) hai modificato il valore predefinito nella tua migrazione dopo averlo eseguito e dovresti 'rake db: migrate: redo' –