スリ飯屋MaLankaのフリーエンジニアな日々

IT実務未経験から約1年、東京でフリーランスのRuby on Railsエンジニアに転職。約2年半、大阪中崎町でスリランカカレーの間借りしてました。フリーランスエンジニアになるためのノウハウ、スリランカの事を発信していきます。

【Rails】ymlファイルの中でerbを使い、動的に値を取得してrakeタスクの引数にする


【Rails】ymlファイルの中でerbを使い、動的に値を取得してrakeタスクの引数にする




今すぐ案件紹介をご希望の方へ


このブログから登録の多いエージェントは下記の3つです★

(リンクをクリックすると公式サイトに飛びます)

【ダントツの1番人気】フォスターフリーランス【案件保有数5000件以上。業界25年の超老舗】

【僅差で2位】フリエン(furien)【実務経験1年未満でも案件アリ!】

【惜しくも3位】レバテックフリーランス【業界最大手。素早く手厚いフォローで案件参画】




こんにちは、現役沖縄フリーランスエンジニアのmahです。


このブログでは、

僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、

ノウハウなどを書いていきます。


今回は、


  • 【Rails】ymlファイルの中でerbを使い、動的に値を取得してrakeタスクの引数にする


について書いていきます。




ymlファイルを引数にとるrakeタスクで困ったので備忘録に残しておきます。




【Rails】ymlファイルの中でerbを使い、動的に値を取得してrakeタスクの引数にする





困ったこと


ymlファイルの中でerbを使い、

動的に値を取得してrakeタスクの引数にしようとしていた。


が、

erbを使った部分が文字列のままで渡ってきて、

上手くいかなかった。


ymlファイル例は下記。


# test.yml.erb

-
  id: <%= User.find_by(name: 'mah') %>
  age: 18

***

こういう値が欲しいが、
#=> [{ id: 1, age: 18 }]

# こうなってしまう
#=> [{ id: <%= User.find_by(name: 'mah') %>, age: 18 }]


rakeタスク例は下記。


# test.rake

***File処理部分のみ記載***

# args.yamlは対象のymlファイルのパス
File.open(args.yaml, 'r') do |file_obj|
  # TODO: ここで上手く読み込めていない
  yaml = YAML.load(file_obj)
 
  # rakeタスクの引数に「yaml」を指定して実行
end




結論


ERB.newを使う。


# test.rake

***File処理部分のみ記載***

# args.yamlは対象のymlファイルのパス
File.open(args.yaml, 'r') do |file_obj|
  yaml =
    case File.extname(file_obj)
    when '.erb'
      # TODO: .erbのファイルを読み込む時はこうする
      YAML.load(ERB.new(file_obj.read).result)

    else
 
      YAML.load(file_obj)
    end
    
  # rakeタスクの引数に「yaml」を指定して実行
end




これで、

上手くerbとして認識され、


[{ id: 1, age: 18 }]


のような値が返ってきたので、

rakeタスクで使えるようになりました。


  • ERBリファレンス

docs.ruby-lang.org




以上です。




RailsやRubyを学びたい人へ


RailsやRubyを学びたい人は、

RailsHack(レイルズハック)という、

最近できた新しいプログラミングスクール(今なら通常価格69,800円が、早期割で29,800円!)か、

Udemy で下記のコースを受講すると良いです★


✅1. フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座

✅2. 【はむ式】ハンズオンで学ぶRuby on Rails 6【Dockerにも触れられる】 <- おすすめ。ハムさんはReactやTypeScriptの教材も非常に丁寧。

✅3. はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう




また、

Udemy は定期的にセールをやっていますし(90%OFFとかもザラ)、

「30日間なら返金できる」ので、

満足できなかった時でも安心です。


f:id:mah666hhh:20201129193352p:plain


【公式】RailsHack(レイルズハック)

【公式】Udemyで学んでみる




最後に


下記の表に、

フリーランスエンジニア向けの人気エージェントをまとめてみました。


エージェント選びで悩んでいる方は是非参考にしてみてくださいね★


エージェント 詳細 最高単価/月 設立
フリエン(furien) 評判をチェック 180万円/月 2011年
ギークスジョブ 評判をチェック 180万円/月 2011年
フォスターフリーランス 評判をチェック 230万円/月 1996年
pe-bank(pebank) 評判をチェック 200万円/月 1989年
Midworks(ミッドワークス) 評判をチェック 200万円/月 2013年
レバテックフリーランス 評判をチェック 140万円/月 2005年




あわせて読みたい


www.malanka.tech


www.malanka.tech


www.malanka.tech


www.malanka.tech