Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 测试创建操作时出错_Ruby On Rails_Ruby On Rails 3_Unit Testing_Testing_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 测试创建操作时出错

Ruby on rails 测试创建操作时出错,ruby-on-rails,ruby-on-rails-3,unit-testing,testing,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Unit Testing,Testing,Ruby On Rails 3.2,我正在尝试使用factory girl来测试我在rails中的创建操作。我不断得到: "Event.count" didn't change by 1. <2> expected but was <1>. 我也尝试过使用FactoryGirl.build(:event)。我以前用过,我认为从我所读到的内容来看,这是正确的方法 这是我的工厂: factory :event do name 'First Event' street '1

我正在尝试使用factory girl来测试我在rails中的创建操作。我不断得到:

"Event.count" didn't change by 1.
<2> expected but was
<1>.
我也尝试过使用
FactoryGirl.build(:event)
。我以前用过,我认为从我所读到的内容来看,这是正确的方法

这是我的工厂:

   factory :event do
        name 'First Event'
        street '123 street'
        city 'Chicago'
        state 'IL'
        date '1/12/2012'
      end
这是我的控制器动作

def create
    @event = Event.new(params[:event])
    @event.save
end

你知道我做错了什么吗?

为了找出你的错误,试着在你的操作中抛出一个
调试器

def create
  @event = Event.new(params[:event])
  debugger
  @event.save
end

查看是否手动解析@event.save,以及哪些错误可能会阻止此操作:D

我很好奇它的错误是否是因为模型验证而导致的,因此没有保存。您是否有异常处理程序来检查错误?如果没有,您可以轻松地
debugger
创建前的一行,并查看实例变量是否正确验证。我没有对事件模型进行验证。这也是我的第一个想法。如果在实例化
@event
之后通过调试器进行编写,会怎么样。然后尝试手动保存它。这个物体会产生吗?多亏了你的建议,我才知道。我有一个before_过滤器阻止保存。
def create
  @event = Event.new(params[:event])
  debugger
  @event.save
end