Administrate の Model の index 画面で Edit や Destroy の表示を消したいとき

状況

以下を消したいときです。

gyazo.com

結論

app/controllers/admin 配下にある、目的のモデルのコントローラに以下のメソッドを書く*1

    def valid_action?(name, resource = resource_class)
      %w[edit destroy].exclude?(name.to_s) && super
    end

補足

  • 公式ドキュメント では以下のように書かれていますが、これを受けて、app/dashboards 配下のファイルに valid_action? メソッドを書くと勘違いしないようにしましょう*2

override valid_action? method in your dashboard controller like this:

  • valid_action? の中身は自由に書けますので、任意のアクションを表示させたり消したりできます
  • gem 上のソースは こちら です

*1:オーバーライドする

*2:私はしました

Powered by はてなブログ