5

我为我的 Rails 3 应用程序运行 RailsAdmin,该应用程序有两个模型 - 销售和商品。两者之间存在HABTM关系。在 RailsAdmin 中,当添加或编辑销售时,可用商品列表以通常的方式显示。但是,只显示了商品的“名称”栏。我还有另一列需要包含其值才能使列表有意义。如何将它添加到 RailsAdmin 界面?

我知道 RailsAdmin文档说字段声明可以访问包含当前记录实例的绑定散列——但我找不到任何关于如何实现这一点的示例。谢谢你的帮助。

4

2 回答 2

5

您至少有以下可用对象:

bindings[:object] # the actual object
bindings[:view]   # you can access view helpers here
bindings[:controller]  # you can access the controller

在这种情况下,您需要的是bindings[:object]

于 2012-07-18T15:09:15.310 回答
5

我建议您为此使用自定义对象标签方法。您的 RailsAdmin 配置可能如下所示:

config.model Merchandise do
  object_label_method
    :custom_label
  end
end

您的 ActiveRecord 模型将包含实例标签的方法:

class Merchandise < ActieRecord::Base
  def custom_label
    "#{self.label} #{self.another_column} #{self.another_column2}"
  end
end

这不能回答您关于可用绑定变量的问题,但我希望它解决了根本问题。如果您想查看自定义字段视图中可以访问哪些变量,可以查看 ~/rails_admin/app/views/rails_admin/main/ 中的视图。快速 grep 显示 bindings[:object] 在这些视图中是可访问的,但是 IIRC,还有一些其他的绑定变量是可访问的。

于 2012-02-22T04:46:35.973 回答