I am using this factory to create Quizes for my test:
factory :quiz_with_two_choices_first_correct, :class => Quiz do |i|
quiz_type Quiz.SINGLE_ANSWER_CHOICE
weight 1
i.after_create do |quiz|
quiz.quiz_choices = [FactoryGirl.create(:quiz_choice, :body=>'Quiz Choice 1', :is_correct=>true, :position=>1),
FactoryGirl.create(:quiz_choice, :body=>'Quiz Choice 2', :is_correct=>false, :position=>2)]
end
end
In my Quiz model I have:
after_create { |record|
if !current_unit.nil? then
if current_unit_type.eql? FinalExam.to_s then
current_unit.total_weights=
current_unit.total_weights+ record.weight
current_unit.save
end
end
}
But when I try to test, I get this error:
Failure/Error: quiz= FactoryGirl.create(:quiz_with_two_choices)
NoMethodError:
undefined method `after_create=' for #<Quiz:0xb50075c>
Here is my test:
describe "When a final question is created" do
it "can't be deleted if any student is enrolled to it" do
quiz= FactoryGirl.create(:quiz_with_two_choices)
final_question = FinalExamQuestion.create(:quiz_id=>quiz.id)
quiz_count_before_try_to_destroy_quiz= Quiz.all.count
quiz.destroy
Quiz.all.count.should == quiz_count_before_try_to_destroy_quiz
end
it "can be deleted if there isn't any student enrolled to it" do
quiz= FactoryGirl.create(:quiz_with_two_choices)
quiz_count_before_try_to_destroy_quiz= Quiz.all.count
quiz.destroy
Quiz.all.count.should_not == quiz_count_before_try_to_destroy_quiz
end
end
So, what could be wrong? why it says undefined method `after_create=' while I am calling after_create i.after_create do |quiz|
Any idea? how to solve this?
--
--
Individuals over processes. Interactions over tools. Agile Rails training from thoughtbot, the makers of Clearance, Shoulda, & Factory Girl:
http://thoughtbot.com/services/training
You received this message because you are subscribed to the "factory_girl" mailing list.
To post to this group, send email to factor...@googlegroups.com
To unsubscribe from this group, send email to
factory_girl...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/factory_girl?hl=en
---
You received this message because you are subscribed to the Google Groups "factory_girl" group.
To unsubscribe from this group and stop receiving emails from it, send an email to factory_girl...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.