我正在构建一个简单的测试来为用户展示产品。我的规格如下所示:
require 'spec_helper'
describe "Show Products" do
it "Displays a user's products" do
product = Factory(:product)
visit products_path
page.should have_content("ABC1")
end
end
我的产品工厂看起来像这样:
FactoryGirl.define do
factory :product do
sequence(:identifier, 1000) {|n| "ABC#{n}" }
end
end
我有一个简单的看法:
<table id="products">
<thead>
<th>Product ID</th>
</thead>
<tbody>
<% for product in @products %>
<tr>
<td><%= @product.identifier %></td>
</tr>
<% end %>
</tbody>
</table>
我得到的错误是没有@products 之类的东西。嗯,是的。这就是我的问题。由于我的工厂被定义为“产品”,并且其中有一个序列,我如何将“产品”中的值放入一个名为“产品”的变量中。
我基本上对上面的 FactoryGirl 语法感到困惑。我怎样才能在一条线上生成多个产品,但工厂名称必须与模型匹配?