FactoryGirl正在制作奇怪的电子邮件

时间:2013-06-10 16:44:12

标签: ruby-on-rails-3 factory-bot

我有一个像这样的工厂设置:

require 'faker'

FactoryGirl.define do

factory :user do |u|
u.sequence(:name) { |n| "User #{n}"}
u.sequence(:email) { |n| "user#{n}@example.com"}
u.password "password"
end

factory :student_group do |student_group|
  sequence(:name) {|n| "class #{n}"}
end


end 

填充我的数据库的rake任务:

require 'factory_girl_rails'

namespace :db do

desc "Fill db with sample data"

task :populate, :environment do

# reset the database
puts "Resetting the database"
Rake::Task['db:reset'].invoke

# create 100 users
puts "Creating users"
new_users = FactoryGirl.create_list :user, 100

#create 3 student_groups for each user  
puts "Creating student groups for each user"
new_users.each do |u|
  FactoryGirl.create_list :student_group, 3, :user_id => u.id
end

# success message
puts "The database has been populated successfully"
end
end

它运行正常,但所有电子邮件字段都填充了这个:--- - user3@example.com - User 3

它只是工作 - 我不确定发生了什么变化,实际上我从我的github存储库复制并粘贴了一些东西(这让我觉得错误在其他地方) - 可能导致电子邮件形成这样的?如果您需要更多文件,请问,我很困惑可能会遇到什么问题。

编辑以确保错误不是来自数据库中遗留的东西,我做了rake db:reset并再次检查了db表...它是空的,所以不是这样!还在寻找。

1 个答案:

答案 0 :(得分:0)

输出看起来像一个哈希。根据最新的FactoryGirl,您不需要在定义块中使用参数u - 也许您的旧仓库使用旧语法。

它应该是这样的:

factory :user do
  sequence(:name) { |n| "User #{n}"}
  sequence(:email) { |n| "user#{n}@example.com"}
  password "password"
end