[rails]active adminのindexページで条件に応じてstyleを変える


active adminは便利ですが、カスタマイズの必要が出てきた時に公式ドキュメントだけだとかゆいところに手が届かなかったりします。

今回は一覧ページで、条件に応じて見た目を変えたい(例えばis_deleted=trueの場合のみ色を変えたい)となった場合のメモです。

app/admin/book.rb の一覧ページの記述を以下のように行っていた場合

  index do
    selectable_column
    column :id
    column :name
    column :is_deleted
    default_actions
  end

is_deleted=true の場合のみ赤色で表示するには、content_tagでタグを生成してスタイルを適用することで対応できました。

こんな感じです。

  index do
    selectable_column
    column :id
    column :name
    column :is_deleted do |f|
      f.is_deleted ? content_tag(:p, f.is_deleted, :style => 'color:red') : f.is_deleted
    end
    default_actions
  end

他にもっと良い方法があればアドバイスお願いします。