Имам този проблем с FactoryGirl.
Всеки път, когато стартирам теста, той излиза с грешката: Недефиниран метод `to_i' за масив
Не мога да видя къде се опитва да преобразува в цяло число. Най-доброто ми предположение е, че се опитва да запази клиентския запис като число, вместо просто да запази идентификатора на записа. Опитах се да потърся документация, за да видя дали съм настроил фабриките си неправилно.
Пуснах рейк db:test:prepare
с надеждата, че е това.
Можете ли да видите какво се обърка?
spec/factories.rb
FactoryGirl.define do
factory :client do
name "Example"
email "[email protected]"
end
factory :book do
title "Book Title"
client_id {[FactoryGirl.create(:client)]}
end
end
spec/views/books/index.html.erb_spec.rb
require 'spec_helper'
describe "books/index" do
before do
FactoryGirl.create(:book)
end
it "renders a list of books" do
render
# Run the generator again with the --webrat flag if you want to use webrat matchers
assert_select "tr>td", :text => "Title".to_s, :count => 2
assert_select "tr>td", :text => 1.to_s, :count => 2
end
end
Тест изход
1) books/index renders a list of books
Failure/Error: FactoryGirl.create(:book)
NoMethodError:
undefined method `to_i' for #<Array:0x########>
# ./spec/views/books/index.html.erb_spec.rb:5:in `(root)'