0

「Name」と「Grade」の2つの列を含む「Grades」という名前のテーブルがあります。すでに[名前]フィールドに手動で入力しました(約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

通常、この操作(グレード列の更新)を実行する場合は、レーキタスクを使用します。

于 2012-05-23T16:26:11.313 に答える
1

すべてのレコードをループし、フィールドに乱数を挿入するレーキタスクを作成します。そうすれば、いつでも実行できます。

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

于 2012-05-23T16:12:55.980 に答える