2

两个问题:

1)如何在模型的“列表”中创建一个包含来自记录关联的数据的列?换句话说,我有一个用户模型和一个用户 has_many 帖子。我只想在列表中有一个“帖子计数”列。我试着做:

field :posts do
  formatted_value do
    value.count
  end
end

但这会导致除以零错误。我什至尝试过这样做:

field :posts do
  formatted_value do
    bindings[:object].posts.count
  end
end

但得到了相同的结果。

2)如何将列表过滤到特定范围?例如,我想让用户的帖子计数成为一个可点击的链接,它将显示给定用户的所有帖子。

我能弄清楚如何做到这一点的最好办法是:

# note that I created a method post_count to temporarily solve problem #1
field :post_count do
  formatted_value do
    bindings[:view].link_to value, "/admin/posts?query=#{bindings[:object].id}"
  end
end

这不太好。有没有办法指示 rails-admin 对.where(:user_id => xxx)模型进行操作?

另一件我并不疯狂的事情是必须手动输入“管理员/帖子”。我试图看看我是否能做到rails_admin_list_path(:model_name => "posts")。但这似乎不起作用。

4

2 回答 2

1

您可能会在 rails_admin 邮件列表中得到更好的回复 - http://groups.google.com/group/rails_admin/

对于您的第一个问题,这应该可以解决问题:

field :posts, :virtual do
  formatted_value do
    bindings[:object].posts.count
  end
end

对于第二个问题,rails_admin 现在有一个过滤系统 - 请参阅http://demo.railsadmin.org/admin/players上的“添加过滤器”下拉菜单。利用它会是一个更好的方法。

rails_admin_list_path(:model_name => "posts")应该工作,你可能不得不include Rails.application.routes.url_helpers或类似。

于 2011-07-08T01:09:31.060 回答
0

尝试将此添加到您的 rails_admin.rb

RailsAdmin.config {|c| c.label_methods << :field_name} 

为我工作

于 2011-11-27T11:53:03.030 回答