如何使用 Rails Gem Active Admin 进行基本关联
我是 Rails 新手,我想在我的第一个项目中使用 Active Admin 来管理 2 个嵌套对象,但我在过滤器(不友好的标签)上遇到了困难。
这是我的 2 个模型:
class Utilisateur < ActiveRecord::Base
has_many :etablissements, :dependent => :destroy
attr_accessible :email, :nom
end
class Etablissement < ActiveRecord::Base
belongs_to :utilisateur
attr_accessible :intitule
end
然后在 app/admin/etablissements.rb 中我有:
ActiveAdmin.register Etablissement do
filter :intitule
filter :utilisateur, :as => :select, :collection => proc { Utilisateur.all }
end
但是选择字段看起来像:
<label for="q_utilisateur_id_eq">Utilisateur</label>
<select id="q_utilisateur_id_eq" name="q[utilisateur_id_eq]">
<option value="">Any</option>
<option value="1">#<Utilisateur:0x00000129dbfd60></option>
<option value="2">#<Utilisateur:0x00000129dbf9c8></option>
</select>
这些选项标签显然不方便用户。关于如何将 :email 字段或任何其他自定义字段作为选项标签有什么想法吗?
感谢您的帮助
I'm new to Rails and I want to use Active Admin on my first project to manage 2 nested objects but I'm stumbling on the filters (non-friendly labels).
Here are my 2 models :
class Utilisateur < ActiveRecord::Base
has_many :etablissements, :dependent => :destroy
attr_accessible :email, :nom
end
class Etablissement < ActiveRecord::Base
belongs_to :utilisateur
attr_accessible :intitule
end
Then in app/admin/etablissements.rb I have :
ActiveAdmin.register Etablissement do
filter :intitule
filter :utilisateur, :as => :select, :collection => proc { Utilisateur.all }
end
But the select field looks like :
<label for="q_utilisateur_id_eq">Utilisateur</label>
<select id="q_utilisateur_id_eq" name="q[utilisateur_id_eq]">
<option value="">Any</option>
<option value="1">#<Utilisateur:0x00000129dbfd60></option>
<option value="2">#<Utilisateur:0x00000129dbf9c8></option>
</select>
Those option-labels are clearly not user-friendly. Any ideas on how to have the :email field or any other custom field as the option-label ?
Thanks for your help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在模型中创建一个 display_name 方法:
您可以在 gem 本身的源代码中阅读更多内容,我假设您知道在系统上的哪里可以找到它。例如,请参阅:
在该文件中,您将看到此方法:
Good lucky et bonne opportunity!
Create a display_name method in your model:
You can read more in the source of the gem itself, i assume you know where to find it on your system. See for example:
In that file you will see this method:
Good luck et bonne chance!