こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。
このブログでは、
僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、
ノウハウなどを書いていきます。
今回は、
- 【ActiveAdmin】has_many + nested_attributes_for + allow_destroyなassociation_formで生成される削除ボタンをカスタマイズする
について書いていきます。
【ActiveAdmin】has_many + nested_attributes_for + allow_destroyなassociation_formで生成される削除ボタンをカスタマイズする
- 【ActiveAdmin】has_many + nested_attributes_for + allow_destroyなassociation_formで生成される削除ボタンをカスタマイズする
- RailsやRubyを学びたい人へ
- 最後に
- あわせて読みたい
ActiveAdminの、
has_many + accepts_nested_attributes_forを使ったassociation_formで、
allow_destroy: true を追加すると、
削除ボタン(check_box)が生成されますが、
そのデフォルトの削除ボタンをカスタマイズしたい時があります。
これをカスタマイズする方法をご説明します。
結論
「allow_destroy: true」 を使わず、
f.inputのname属性に 「:_destroy」 を指定すればOK。
あとはオプションをつければOKです。
- 例
form do |f| f.inputs 'Contract' do # 親モデル Contract end # 子モデル Option f.has_many :options, do |o| # allow_destroy: trueは不要 o.input :_destroy # こうすると削除ボタンが生成される # ラベルを変更するなら下記のような感じ o.input :_destroy, label: I18n.t('delete.label') # disabledにするなら下記のような感じ o.input :_destroy, label: I18n.t('delete.label'), input_html: { disabled: true } end end
- ラベルを「削除」に変更したボタン
また、
この削除ボタンは、
子モデルから「:_destroy」というname属性として送信するので、
permit_paramsに :_destroyを追加しないと動作しないです。
忘れないようにしましょう。
ActiveAdmin.register Contract do # Contractが親モデル Optionが子モデルとする # Contractモデルに、accepts_nested_attributes_for [:options] を記述済 # 下記のように、削除する子モデルの複数形_attributes: [:_destroy]を追加する permit_params :options_attributes [:_destroy] form do |f| f.inputs 'Contract' do # 親モデル Contract end # 子モデル Option f.has_many :options, do |o| # allow_destroy: trueは不要 o.input :_destroy # こうすると削除ボタンが生成される # ラベルを変更するなら下記 o.input :_destroy, label: 'ラベルをカスタマイズ' end end end
以上です。
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年 |
あわせて読みたい