在Rails控制台上,我的类用户看起来像这样:
irb(main):005:0> User
=> User(id: integer, name: string, created_at: datetime, updated_at: datetime)
我可以使用
生成User实例irb(main):006:0> User.create(:name => "user0")
我想要做的是通过创建X个用户实例来测试我的数据库。我想过编写一个Ruby脚本,我循环遍历一个循环 - 就像(不是真正的Ruby代码!)
for i in 1..X do
User.create(:name => "name"+i)
end
但我不知道如何在Ruby中访问我的类以及如何“告诉”控制台生成实际对象。
感谢您的回答!
答案 0 :(得分:1)
这里有几个选项。最好的选择是学习如何使用Rails的默认Test::Unit或RSpec或其他替代方法编写单元测试。这是正确的方法,事实上Rails默认都是通过测试连接起来的。你有一个test
目录,rake test
和其他测试任务。如果您使用Rails生成器(rails g model Foo
),它甚至会为您创建测试文件。你只需要填写它们。
如果您还没准备好学习测试框架,那么您可以将上面的代码放到一个文件中(让我们称之为test_user.rb
)并通过rails runner
运行它。这将在执行代码之前引导Rails环境,并且您将可以访问模型:
rails runner test_user.rb
答案 1 :(得分: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