こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。
このブログでは、
僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、
ノウハウなどを書いていきます。
今回は、
- 【ActiveAdmin】formで、belongs_toなmodelのstrong_parameterを指定する
について書いていきます。
【ActiveAdmin】formで、belongs_toなmodelのstrong_parameterを指定する
結論
特に難しいことを考える必要はなく、
permit_paramsに、
親モデルの「名称」と「属性」を指定すればOKです。
例えば、
下記のようなモデルがあるとします。
# 親 class Plan attribute :name attribute :price has_many :contracts end # 子 class Contract belongs_to :plan end
この場合、
ActiveAdmin側で下記のようにすればOKです。
# app/admin/contract.rb ActiveAdmin.register Contract do # これを追加 permit_params plan: [:name, :price] # コントローラー的な処理をしたい場合に追加 controller do end end
ここで注意点。
permit_paramsには、
親モデル名だけではなく、
親モデルの属性まで書いてあげる必要があります。
# OK permit_params plan: [:name, :price] # NG permit_params :plan
自分は最初、
permit_params :plan
と書いていたところ、
unpermitted_parameter :plan
的なメッセージで、
:planだけが拒否されていたので混乱しました...
よくよく考えると当たり前かと思ったのですが、
何故だかしばらくハマってしまいました...
ドキュメントには、
has_manyな子モデルに対する情報は載っていますが、
belongs_toな親モデルに対する記述はありません。
また、
permit_paramsを定義すると、
controller do〜endブロックの中で、
permitted_paramsというメソッドが使えるようになります。
permitted_paramsは、
通常のストロングパラメータと同じように、
permitted_params[:plan][:name] みたいにして使うことができます。
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年 |
あわせて読みたい