ユーザーに商品を表示するための簡単なテストを作成しています。私のスペックは次のようになります:
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のようなものがないということです。まあ、そうだろう。そしてそれが私の質問です。私のファクトリは「product」として定義されており、その中にシーケンスがあるので、「product」の値を「products」という変数に入れるにはどうすればよいですか。
私は基本的に上記のFactoryGirl構文に混乱しています。その1つのラインで複数の製品を生成することができますが、工場名はモデルと一致する必要がありますか?