【问题标题】:Rails seed file exits loop creating less than the specified usersRails 种子文件退出循环创建少于指定用户
【发布时间】:2012-06-16 01:40:03
【问题描述】:

我在 rails 3.2.2 应用程序中有一个种子文件,它为我创建用户来测试网站布局和表单。它应该生成一个管理员和 10 个用户,但它只创建管理员和 2 个用户,而没有任何解释它为什么停止。在我检查数据库之前,它不会抛出异常并且一切看起来都很好。

这里是代码

require 'faker'

# Create an Admin user to test the site with
Admin.create first_name: "Admin",
         last_name: "User",
         email: "admin.user@example.com",
         password: "foobarbaz",
         password_confirmation: "foobarbaz"

# Generate 10 users to test with
10.times do
  student_address = { street: Faker::Address.street_address,
                  city: Faker::Address.city,
                  state: Faker::Address.us_state_abbr,
                  zipcode: Faker::Address.zip_code }
  first_name = Faker::Name.first_name
  last_name = Faker::Name.last_name

  Student.create first_name: first_name,
             last_name: last_name,
             email: "#{first_name}.#{last_name}@example.com",
             student_id: rand(10 ** 6).to_s.rjust(6,'0'),
             address_attributes: student_address,
             phone_number: Faker::PhoneNumber.phone_number,
             password: "foobar",
             password_confirmation: "foobar"
end

【问题讨论】:

    标签: ruby-on-rails-3 seed


    【解决方案1】:

    如果您希望 create 或 update_attributes 为无效记录引发异常,则需要使用相应的“bang”版本。

    Student.create!
    

    【讨论】:

    • 谢谢,创建“bang”帮助我查明了问题。 Faker 为每个新用户生成不同的邮政编码和电话号码,他们有时会有一个额外的号码或更长版本的邮政编码。我将其更改为取出所有非整数字符,并仅选择前 5 或 10 位数字。
    • 感谢您描述确切的问题。它将帮助未来的观众。
    猜你喜欢
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多