

Ruby on Rails上で

[code]

    [
      [“国語“, "1", “B”, "2019"],
      [“数学”, "2", “A”, "2019"],
      [“理科”, "2", "Ｂ", "2017"],
      [“社会”, "2", "Ｃ", "2019"],
      [“美術”, "2", "Ａ", "2016"],
      ["情報", "2", "Ｓ", "2017”]
    ]
    
[/code]

このような二次元配列から要素を一つずつ取り出してCurriculum.newでデータベースに保存したいと考えているのですが、コードのイメージがつかないため、どなたかご教授していただけないでしょうか。  
データベースの構造は以下のように考えております。

[![画像の説明をここに入力](https://i.stack.imgur.com/cxR3O.png)](https://i.stack.imgur.com/cxR3O.png)


CC BY-SA 4.0
2019-12-31T01:52:24.970
61907
2022-12-08T17:08:31.010
2019-12-31T03:59:10.533
3060
37261
question
ruby-on-rails ruby
Railsで二次元配列をデータベースに保存したい


実行したわけじゃないのでミスがあるかもですが

db/seeds.rb にこんな感じに書いて `rake db:seed` でダメですか？

[code]

    bulk_arrays = [
      [“国語“, "1", "B", "2019"],
      [“数学”, "2", "A", "2019"],
      [“理科”, "2", "Ｂ", "2017"],
      [“社会”, "2", "Ｃ", "2019"],
      [“美術”, "2", "Ａ", "2016"],
      ["情報", "2", "Ｓ", "2017"]
    ]
    
    bulk_values = bulk_arrays.map{|r|
      # カラム名は適宜変更してください
      Curriculum.new {
        授業名: r[0],
        単位数: r[1],
        年度:   r[3]
      }
    }
    
    Curriculum.import bulk_values
    
[/code]

* * *

モデルが既に定義されてるのでテーブルはすでにあるものと思ってますが  
なければテーブルもマイグレーションで作る必要があります

`rails g migration create_curriculums`

でできたマイグレーションファイル db/migrate/xxxxxx_create_curriculums に

[code]

    create_table :curriculums do |t|
      t.string '授業名'  # 追加
      t.string '単位数'  # 追加
      t.sting  '年度'    # 追加
    end
    
[/code]

とかいて  
`rails db:migrate`  
とうてばテーブルもできると思います


CC BY-SA 4.0
2019-12-31T10:44:04.343
61914
2019-12-31T11:02:36.780
2019-12-31T11:02:36.780
61907
answer