Yamlファイルを活用してDBにデータを挿入する
1)背景
Yamlファイルについて、環境設定などの用途で使用されることが多いですが、アプリケーションでデフォルトデータを予めデータベースに登録したい場合なども、csvファイルと比較してyamlファイルは便利です。
私のようにポートフォリオを作成していると、サンプルデータについて、見てもらう人が意識せず、セッティングしておく必要があります。ソースには書かない、csvは可読性が低いなど、yamlが登場する場面だと思います。
2)環境
項目 | 内容 |
---|---|
OS.Catalina | v10.15.4 |
Ruby | v2.5.1 |
Ruby On Rails | v5.2.4.3 |
3)内容
対応1)yamlファイルの作成
細かな設定ができますが。ここでは省略します。後述するデータイメージを参照して下さい。
- id: 1,
password: 111111
name: '未登録ユーザ'
email: '[email protected]'
対応2)yamlを読み込んで出力するサービスを作成する
少し長いですが、以下の通りサービスを作成しました。
require('yaml')で機能拡張が必要になります。
1 class MakeDefaultDataService
2 require('yaml')
(省略)
3 def insert_user_data
4 begin
5 default_user = User.new
6 insert_data = YAML.load_file('app/lib/yaml/default_user.yml')
7 insert_data.each do | data |
8 default_user.id = data["id"]
9 default_user.password = data["password"]
10 default_user.name = data["name"]
11 end
12 default_user.save
13 rescue
14 p "(ユーザ)データ登録に失敗しました。"
15 end
16 end
このメソッドを実行した時、4行目の「insert_data」変数には以下のようにデータがセットされています。
[{"id"=>1, "password"=>111111, "name"=>"未登録ユーザ", "email"=>"[email protected]"}]
あとは、適宜データを加工して、データベースにセットするだけですね。
便利ですね。
以上です。
Author And Source
この問題について(Yamlファイルを活用してDBにデータを挿入する), 我々は、より多くの情報をここで見つけました https://qiita.com/dichikawa/items/6e2eb57bfa13f2de9f77著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .