0

我有一个名为“Grades”的表,其中包含 2 列:“Name”和“Grade”。我已经手动填写了姓名字段(我有大约 150 条记录),现在我想为每个学生随机化一个成绩。

我不想使用 mysql 语法,我想使用 ruby​​ 代码。你能告诉我怎么做以及这个脚本应该放在红宝石目录树的什么地方吗?

稍后我计划用更复杂的计算成绩的代码替换随机化成绩的代码(这只是一个临时的实现)......

(我是 Ruby 新手,我想正确地做事)。

4

2 回答 2

3

如果你想为你的开发环境创建测试数据,你应该使用种子。你可以在db/seeds.rb. 该文件包含一些示例。如果你想以正确的方式做你应该使用这样的语法

names = ['Mark', 'Paul', 'Alex', 'Phil']
150.times do |i|
  # create! throw exception if errors  
  Grade.create!(name: names.sample, grade: rand(6))
end

如果您想通常执行此操作(更新成绩列),请使用 rake 任务。

于 2012-05-23T16:26:11.313 回答
1

制作一个遍历所有记录并将随机数插入字段的 rake 任务。这样你就可以随时运行它。

http://railscasts.com/episodes/66-custom-rake-tasks

于 2012-05-23T16:12:55.980 回答