两个问题:
1)我怎样才能使模型的'list‘中的一列包含来自记录关联的数据?换句话说,我有一个用户模型和一个用户has_many posts。我只想在列表中有一个"post count“列。我试着这样做:
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)?
我不喜欢的另一件事是必须手动输入‘admin/post’。我在试着看我是否能做rails_admin_list_path(:model_name => "posts")。但这似乎并不管用。
发布于 2011-07-08 09:09:31
你可能会在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-11-27 19:53:03
尝试将其添加到您的rails_admin.rb
RailsAdmin.config {|c| c.label_methods << :field_name} 对我很管用
https://stackoverflow.com/questions/6367123
复制相似问题