Rails管理画面作成用のgem「administrate」- カスタマイズ編(カスタムフィールド)

今回はカスタムフィールドの設定方法について説明します。
カスタムフィールドについては公式ドキュメントにも記載されています。
ドキュメント

  • カスタムフィールド設定前の画面の確認
  • administrateのviewの確認
  • カスタムフィールドの設定

  

カスタムフィールド設定前の画面の確認


登録画面表示

前回作成したモデルにはbelong_toを設定していました。
デフォルトではbelong_toを設定したモデルの登録画面が親レコードのidで表示されてしまいます。

  
idだけでは分かりにくいのでカスタムフィールドを使ってidに対する名称を表示できるようにしたいと思います。
  
  

administrateのviewの確認


administrateのreferencesフィールドの確認

上記の画面でbelong_toのカラムを表示しているviewは以下になります。

vendor/bundle/ruby/2.3.0/gems/administrate-0.3.0/app/views/fields/belongs_to/_form.html.erb

  
viewに対するヘルパーメッソドなどは以下で設定しているようです。
vendor/bundle/ruby/2.3.0/gems/administrate-0.3.0/lib/administrate/field/belongs_to.rb

  
belong_to以外にも下記のフィールドもありました。

  • date_time
  • has_many
  • number
  • select
  • text
  • boolean
  • email
  • has_one
  • polymorphic
  • string
      
      

カスタムフィールドの設定


belong_toフィールドの作成

作成されたファイル

  

_form.html.erbの修正

修正前

  
vendor/bundle/ruby/2.3.0/gems/administrate-0.3.0/app/views/fields/belongs_to/_form.html.erbを参考にしながら修正します。
今回はまるまるコピーしました。
  
修正後

  

belongs_to_field.rbの修正

修正前

  
vendor/bundle/ruby/2.3.0/gems/administrate-0.3.0/lib/administrate/field/belongs_to.rbを参考にしながら修正します。

  

Dashboardの修正

app/dashboards/practice_content_dashboard.rb
ATTRIBUTE_TYPESを修正します。

  

アプリ起動

belong_toのセレクトボックスに親レコードのidに対する名称が表示されています。

  
レイアウトを崩すことなく簡単にカスタマイズができました。
administrateはカスタマイズしやすいライブラリだと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*
*
Website