-1
我们的应用程序已经在RFQ控制器(钢轨3.1.0),它是测试指标一个简单的例子:一个简单的Rspec的在轨检查控制指标不合格3.1.0
it "should be successful" do
get 'index'
response.should be_success
end
我们刚刚发现大小写因index.html.erb中的错误而失败(虽然之前它已通过)。的代码行是
<% @rfqs.each do |r| %>
<td><%= r.customer.short_name %></td>
<% end %>
错误是:
1) RfqsController 'index' should be successful
Failure/Error: get 'index'
ActionView::Template::Error:
undefined method short_name' for nil:NilClass
# ./app/views/rfqs/index.html.erb:28:inblock in _app_views_rfqs_index_html_erb__624673492_53806644'
# c:in each'
# c:ineach'
# ./app/views/rfqs/index.html.erb:18:in _app_views_rfqs_index_html_erb__624673492_53806644'
# ./spec/controllers/rfqs_controller_spec.rb:16:inblock (3 levels) in '
然而,该应用没有问题,以显示在索引页的SHORT_NAME。同样在rails控制台中,r.customer.short_name确实从customer表中返回短名称。
在RFQ模型,它具有关联关系:如果代码行变得
belongs_to :customer
壳体将通过:r.customer_id,代替r.customer.short_name。有关这个问题的任何想法?谢谢。
更新:发现问题。它是由测试数据库中的垃圾记录引起的。清理测试分贝后,问题消失。
客户记录已创建并被拉入选择。创建rfq时,只有customer_id保存在rfq记录中。客户控制器没有变化。 customer_id已成功提取,并且找不到与customer_id关联的客户短名称 – user938363 2012-01-16 14:58:48
您收到的错误表示无法找到客户,因为它为零。 – TDH 2012-01-17 16:02:16
奇怪的是它可以找到customer_id和rspec通行证。 – user938363 2012-01-17 17:37:50