小编dee*_*eep的帖子

FactoryGirl&Mongoid embedded_in和build_list

问题

好的,我所遇到的问题是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)

rspec mongoid factory-bot

4
推荐指数
1
解决办法
1553
查看次数

Rspec控制器传递参数

以下是我遇到的问题.我不知道如何将正确的参数传递给此控制器操作.

代码

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)

Rspec

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)

rspec controllers ruby-on-rails-3

2
推荐指数
1
解决办法
7683
查看次数