こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。
このブログでは、
僕が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
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日間なら返金できる」ので、
満足できなかった時でも安心です。
【公式】RailsHack(レイルズハック)
【公式】Udemyで学んでみる
最後に
下記の表に、
フリーランスエンジニア向けの人気エージェントをまとめてみました。
エージェント選びで悩んでいる方は是非参考にしてみてくださいね★
エージェント | 詳細 | 最高単価/月 | 設立 |
---|---|---|---|
ココナラテック(旧:フリエン)(furien) | 評判をチェック | 180万円/月 | 2011年 |
ギークスジョブ | 評判をチェック | 180万円/月 | 2011年 |
フォスターフリーランス | 評判をチェック | 230万円/月 | 1996年 |
pe-bank(pebank) | 評判をチェック | 200万円/月 | 1989年 |
Midworks(ミッドワークス) | 評判をチェック | 200万円/月 | 2013年 |
レバテックフリーランス | 評判をチェック | 140万円/月 | 2005年 |
あわせて読みたい