初めに
以前とあるアプリを開発時に駅情報や路線情報が必要になり、色々と調べましたが情報を集めるのに苦戦したため記事を書こうと思い至りました。
間違っている等あればコメントよろしくお願いいたします。
また、本記事に関しては駅情報のみについて記載しますが、路線情報についても手順は一緒のため割愛致します。
手順
1,モデル作成
まずは対象のモデルを作成致します。
rails g model Station
2,マイグレーションファイルに記述
①先ほどのコードでマイグレーションファイルが作成されるので中身を記述して行きます。
def change
create_table :stations do |t|
t.integer :station_cd
t.integer :station_g_cd
t.string :station_name
t.string :station_name_k
t.string :station_name_r
t.integer :line_cd
t.integer :pref_cd
t.string :post
t.string :address
t.float :lon
t.float :lat
t.date :open_ymd
t.date :close_ymd
t.integer :e_status
t.integer :e_sort
t.timestamps
end
end
②上記を記述したらマイグレーションを実行します。
rails db:migrate
3,マスタデータ取得
色々とデータを取得できるサイトはありますが今回は駅データjpというサイトからダウンロード致します。
※ダウンロードするには無料の会員登録が必要なので注意です。
4,取得したものを配置
取得してきたものを/assets/csvフォルダを作成した配下に貼り付けます
5,seed.rbに記述
以下に内容をseed.rbに記述します
require 'csv'
station_csv_file_path = 'app/assets/csv/station.csv'
CSV.foreach(station_csv_file_path, headers: true) do |row|
Station.create!(row.to_hash)
end
6 ,seedデータ作成
最後にseedデータを実行して終了です
rails db:seed
最後に
以上で終了になります。これによりプルダウンの項目に表示させたりと色々おこなえるようになります。
拙い文章でしたが最後まで読んでいただきありがとうございました。