Для генерации данных на лету я бы посоветовал вам использовать гем factory_girl.Вы можете создавать поля автоматически, имея контроль над другими.
В этом случае у меня есть два массива имен (first_names и last_names), и я буду случайным образом создавать объекты Contact.
FactoryGirl.define do
factory :contact do
name {"#{first_names.sample} #{last_names.sample}"}
email {"#{name.downcase.gsub!(' ', '.')}@example.com"}
vat_number {rand(9999999).to_s.center(7, rand(9).to_s)}
gender {['male', 'female'].sample}
birth_date {Date.today - rand(200..40000)}
end
end
Затем, чтобысоздать контакт Мне нужен только FactoryGirl.create (: contact) для отдельной записи.Вы можете адаптировать этот пример под свои нужды.
В вашем случае вы можете использовать свою таблицу следующим образом:
Given /^the following article pages:$/ do |table|
table.hashes.each do |hash|
FactoryGirl.create(:article, hash
end