1

在 Rails 控制台上,我的 Class User 如下所示:

irb(main):005:0> User
=> User(id: integer, name: string, created_at: datetime, updated_at: datetime)

我可以使用生成用户实例

irb(main):006:0> User.create(:name => "user0")

我想要做的是通过创建若干 X 用户实例来测试我的数据库。我想过编写一个 Ruby 脚本,在其中循环循环 - 类似于(不是真正的 Ruby 代码!)

for i in 1..X do
  User.create(:name => "name"+i)
end

但我不知道如何在 Ruby 中访问我的类以及如何“告诉”控制台生成实际对象。

感谢您的回答!

4

2 回答 2

1

您在这里有几个选择。最好的选择是学习如何编写单元测试,使用 Rails 的默认Test::UnitRSpec或其他替代方法。这是正确的方法,事实上,Rails 默认情况下都与测试相关联。你有一个test目录rake test和其他测试任务。如果您使用 Rails 生成器 ( rails g model Foo),它甚至会为您创建测试文件。你只需要填写它们。

如果您还没有准备好学习测试框架,那么您可以将上面的代码放入一个文件中(我们称之为test_user.rb)并通过rails runner. 这将在执行代码之前引导 Rails 环境,您将可以访问模型:

rails runner test_user.rb
于 2013-03-28T00:12:32.230 回答
0

您似乎正在尝试为您的数据库创建一些种子数据。为什么不直接在 Rails 控制台中运行您的代码?或者您可以创建一个 Rake 任务,然后从那里运行播种。

我还建议使用Faker,这将为您提供一些真实的数据:

require 'faker'

for i in 1..X do
    u = User.new
    u.first_name = Faker::Name.first_name
    u.last_name = Faker::Name.last_name
    u.email = Faker::Internet.email
    u.notes = Faker::Lorem.paragraph
    u.cell_phone = Faker::PhoneNumber.cell_phone
    u.home_phone = Faker::PhoneNumber.phone_number
    u.save
end
于 2013-03-28T00:33:32.130 回答