技術関連 - ActiveAdmin
解決策 ActiveAdmin::Views::Pages::Indexというクラスにある、 render_blank_slate というメソッドにモンキーパッチを当てます。 render_blank_slate www.rubydoc.info ja.ymlのキー (blank_slate、content、link) github.com やり方 1、 initializerで、モ…
son型のDBカラムを、 active_adminの管理画面フォームで表示させようとすると、 Unable to find input class JsonInput のエラー。 backtraceの一部 @input_class_finder.find(as) rescue Formtastic::InputClassFinder::NotFoundError raise Formtastic::Un…
最初に結論 json型なので、 参照時のキーは「文字列キー」にする必要がある。 シンボルじゃダメ。 それだけのことでした。 起こったこと 下記のようなjson型カラムの中にあるデータを、 active_adminのフォームの初期値として表示させたい。 t.json "options…
ActiveAdminで管理画面を作っていて、 「非エンジニアのサポートチームの人が使うから、チェックボックスにはダイアログかアラート出したいな...」 と思い、 「chack_boxをON、OFFしたらdialogかalertを出すオプション」 的なものを探していたのですが、 che…
「allow_destroy: true」 を使わず、 f.inputのname属性に 「:_destroy」 を指定すればOKです。 例 form do |f| f.inputs 'Contract' do # 親モデル Contract end # 子モデル Option f.has_many :options, do |o| # allow_destroy: trueは不要 o.input :_des…
controller do〜endブロックの中で、 createなりupdateメソッドをオーバーライドすればOKです。 オーバーライドする際は、 リダイレクトの処理も書いてあげる必要があります。 ちなみに、 createもupdateも、 デフォルトのリダイレクト先は「showアクション…
結論 collectionオプションを使います。 collectionの引数に、 scopeを渡してあげればOKです。 例 f.inputs for: [:plan, f.object.plan || Plan.new] do |p| p.input :name, as: :select, collection: Plan.all.map(&:name) # Planモデルの全nameをセレクト…
permit_paramsに、 子モデルの「名称」と「属性」を指定すればOKです。 例えば、 下記のようなモデルがあるとします。 # 親 class Plan attribute :name attribute :price has_many :contracts end # 子 class Contract belongs_to :plan end この場合、 Act…
panel do〜endブロックの中に、 f.inputを入れてあげればOKです。 form do |f| panel '次月プラン' do f.input :name f.input :id end end するとこんな感じになります。 f:id:mah666hhh:20201107111535p:plain nameのラベルは、 I18nで翻訳が当たっているの…
config.clear_action_items! の1行を追加すればOKです。 ActiveAdmin.register Item do # これを追加 config.clear_action_items! end これで、 ヘッダータイトルの作成ボタンが非表示になりました。 f:id:mah666hhh:20201107092354p:plain clear_action_ite…