好的,我所遇到的问题是FactoryGirl在我的测验中构建嵌入式作业,它使用mongo而不是活动记录.我尝试使用与我的活动记录模型一起使用的build_list,但是我在使用mongoid时遇到了这个问题...
我可以调用以下内容并返回quiz_assignments:
@quiznos.quiz_assignments.new(due_at: Time.now+ 1.day, published_at: Time.now)
Run Code Online (Sandbox Code Playgroud)
但是,如果我打电话
@quiznos = FactoryGirl.build(:quizWassignments)
Run Code Online (Sandbox Code Playgroud)
@quiznos将有一个创建的测验,但@ quiz.quiz_assignments == []
我甚至可以运行以下内容并过去
@quiz = FactoryGirl.build(:quiz)
@quiznos = FactoryGirl.build(:quiz_assignment, quiz: @quiz)
@quiz.quiz_assignments.should == [@quiznos]
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个工作:quizWassignments?
class Quiz
include Mongoid::Document
include Mongoid::Timestamps
field :user_id
field :title
field :description
field :assignment_id
field :due_at, :type => DateTime
field :published_at, :type => DateTime
embeds_many :quiz_assignments
end
class QuizAssignment
include Mongoid::Document
include Mongoid::Timestamps
field :due_at, :type => DateTime
field :published_at, :type => DateTime
embedded_in :quiz
embeds_many :quiz_assignees
validates_presence_of :due_at, …Run Code Online (Sandbox Code Playgroud) 以下是我遇到的问题.我不知道如何将正确的参数传递给此控制器操作.
def get_standards
@standard_children, @temp = Standard.browse(params[:guid])
@parent_standard = params[:guid]
respond_to do |format|
format.js
end
end
Run Code Online (Sandbox Code Playgroud)
describe "Get Standards" do
it "should return correct values" do
@stateOne = mock_model(Standard, description: "beta")
Standard.stub!(:browse).and_return(@stateOne, "temp")
assigns(:standard_children).should == @stateOne
assigns(:parent_standard).should == 'one'
get :get_standards, :params => {guid: 'one'}
end
end
Run Code Online (Sandbox Code Playgroud)
Failure/Error: assigns(:standard_children).should == @stateOne
expected: #<Standard:0x3ffed4e53d88 @name="Standard_1001">
got: nil (using ==)
Run Code Online (Sandbox Code Playgroud)