Ruby on Rails で Active Admin を使用していますが、一部のモデルがパネルに表示される方法に問題があります。
クラスUser
を例にとると、わかりやすいように表示するメソッドを定義しないと、#<User:00000006b47868>
. そのため、Active Admin は、クラスごとに表示方法を指定する方法を実装することを提案しています。
ドキュメント ( http://activeadmin.info/docs/3-index-pages/index-as-table.html ) によると、Active Admin はこれらの方法のいずれかを探して、何を表示するかを次の順序で推測します。
:display_name, :full_name, :name, :username, :login, :title, :email, :to_s
したがって、クラス内にこのメソッドUser
を含めると、問題が解決します。
def display_name
return self.id.to_s + '-' + self.full_name
end
ただし、アクティブ管理を使用する前に、ユーザー名をわかりやすい方法で表示するために、他の目的 (ビューなど) で既にこの方法display_name
を使用していましたが、アクティブ管理パネルで同じことを表示したくありません。
プロジェクトに沿って多くのファイルで使用しているため、メソッドの名前を変更できません。名前をdisplay_name
変更すると、アプリケーションにバグが発生する可能性があります。
この場合の理想的な解決策はactive_admin_name
、Active Admin がパネルにモデルを表示するために使用するメソッドのようなものを用意することです。質問は次のとおりです。
の代わりに Active Admin によって呼び出されるメソッドを持つ方法はありdisplay_name
ますか? たとえば、次の順序になります。
:active_admin_name, :display_name, :full_name, :name, :username, :login, :title, :email, :to_s
Active Admin のドキュメントと を検索しましたconfig/initializers/active_admin.rb
が、それを行う方法が見つかりませんでした。
ありがとう!