我在Active Rails中使用了Ruby on Rails,我遇到了某些模型顯示在面板中的問題。Rails + Active Admin:顯示名稱
以User
爲例,如果我沒有定義任何友好的顯示方法,我會看到#<User:00000006b47868>
。所以Active Admin建議實施一種方法來爲每個班級指定如何顯示它。
根據文檔(http://activeadmin.info/docs/3-index-pages/index-as-table.html),主動聯繫尋找這些方法中的一個猜測顯示什麼,按以下順序:
:display_name, :full_name, :name, :username, :login, :title, :email, :to_s
所以具有User
類中這個方法可以解決問題:
然而,使用Active管理員之前,我已經使用方法display_name
與其他用途(例如,以v )以便以友好的方式顯示用戶名,並且我不想在Active Admin面板中顯示相同的內容。
我不能更改方法的名稱,因爲我在項目中的很多文件中使用display_name
,並且更改它可能會在應用程序中引入錯誤。
對於這種情況,一個理想的解決方案應該是像Active Directory管理員用來在其面板中顯示模型的active_admin_name
方法。所以問題是:
有什麼辦法有一個被Active Admin調用而不是display_name
的方法嗎?例如,導致下面的順序:
:active_admin_name, :display_name, :full_name, :name, :username, :login, :title, :email, :to_s
我已經搜查活動管理文件和config/initializers/active_admin.rb
,但我無法找到一個方法來做到這一點。
謝謝!
此設置,我認爲我沒有在我的項目文件。我試圖創建它並將代碼放在那裏,但它不起作用。我也嘗試把這個代碼放在'config/initializers/active_admin.rb'中,但是沒有好的結果。我發現在Active Admin源代碼中有一些類似你的代碼:https://github.com/gregbell/active_admin/blob/master/lib/active_admin/application.rb也許我們必須把它放在其他文件中? – 2013-04-27 20:13:26
它適用於我使用AA 0.6.0的項目。我在'config/initializers/active_admin.rb'中定義了'config.display_name_methods = [:admin_display_name,....]'。確保你重新啓動你的應用程序。 – baxang 2013-07-24 12:13:42