ActiveAdmin で日付カラムのデフォルトを datepicker にする方法
Published: 2021/4/27
問題
ActiveAdmin では、日付カラムはデフォルトでは :date_select
が利用され、結果として年/月/日のフィールドが別々になってしまう。
form do |f|
f.semantic_errors
f.inputs do
f.input :some_date, as: :datepicker
f.input :other_field
# ...
end
f.actions
end
と、 as: :datepicker
を付与すれば datepicker が利用可能なものの、デフォルトの挙動を再現するには上のような記述をいちいち行なう必要があり、大体のユースケースである「何か良い感じにモデルだけ指定して後はよろしくやってほしい」ができていないので、これをどうにかしたいと考えた。
解決
config/application.rb
に以下のように記述を行い、パッチを当てる。
Bundler.require(*Rails.groups)
# パッチ開始
module ActiveAdminFormBuilderPatch
def default_input_type(*_args, **_kwargs)
ret = super
ret == :date_select ? :datepicker : ret
end
end
ActiveAdmin::FormBuilder.include ActiveAdminFormBuilderPatch
# パッチ終わり
module MyApp
class Application < Rails::Application
# config.hoge = ....
end
end
結果
date
なカラムはデフォルトで :datepicker
になった。
Tags: railsactiveadmin
関連記事
Elasticsearch-rails で接続先情報を設定する方法
2021/12/18
OpenAPI では rails のクエリパラメータの完全サポートはできない
2021/10/29
Rails.cache の動作をログに出力する方法
2021/9/22
複雑な join を scope で記述するプラクティス
2020/1/8