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

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

【active_admin】json型columnのinputエリアの、初期value表示でハマる


【active_admin】json型columnのinputエリアの、初期value表示でハマる




今すぐ登録したい方へ


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

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

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

【僅差で2位】エミリーエンジニア【4人に1人が初めてのフリーランス】

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




こんにちは、mahです。


このブログでは、

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

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


今回は、


  • 【active_admin】json型columnのinputエリアの、初期value表示でハマる


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




【active_admin】json型columnのinputエリアの、初期value表示でハマる





最初に結論


json型なので、

参照時のキーは「文字列キー」にする必要がある。


シンボルじゃダメ。


それだけのことでした。


起こったこと


下記のようなjson型カラムの中にあるデータを、

active_adminのフォームの初期値として表示させたい。


t.json "options_data"




json型のデータを、

active_adminのフォームで扱うときは下記のような感じです。


# 型
form do |f|
  f.inputs for: :json型のカラム名 do |json_field|
    json_field.input :json型のカラムに保存しているキー, input_html: { value: json型のカラムに保存しているキー }  
  end
end




例にすると下記のような形。


# 例
# options_dataの中に、:nameというキーでデータを保存している前提

form do |f|
  f.inputs for: :options_data do |json_field|
    # json型のinputエリアは、デフォルトがrequiredなので、必須にしたくない場合はfalseを指定すること

    json_field.input :name, required: false, input_html: { value: f.object.options_data[:name] }
  end
end


こんな感じで、

valueにnameを指定しているが、

options_dataに保存されているnameの値がフォームに反映されない。




...もしやと思い、

jsonのキーを「文字列キー」にしたら上手くいきました。


# これはダメ
f.object.options_data[:name]

# こうする
f.object.options_data[”name”]




結構ハマってしまった...


忘れた頃にたまーにやらかすんですよねこれ。


もしシンボルで指定したいなら、

symbolize_keysを使えばOKかなと思います。




  • 参考

https://lorefnon.me/2015/03/02/dealing-with-json-fields-in-active-admin.html

https://stackoverflow.com/questions/22787096/unable-to-find-input-class-for-json-handling-json-type-in-active-admin




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で学んでみる




最後に


下記の表に、

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


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





あわせて読みたい


www.malanka.tech


www.malanka.tech


www.malanka.tech


www.malanka.tech




最後までお読み頂きありがとうございました★

もしよかったらTwiiterのフォローもお願いします★