我为我的 Rails 3 应用程序运行 RailsAdmin,该应用程序有两个模型 - 销售和商品。两者之间存在HABTM关系。在 RailsAdmin 中,当添加或编辑销售时,可用商品列表以通常的方式显示。但是,只显示了商品的“名称”栏。我还有另一列需要包含其值才能使列表有意义。如何将它添加到 RailsAdmin 界面?
我知道 RailsAdmin文档说字段声明可以访问包含当前记录实例的绑定散列——但我找不到任何关于如何实现这一点的示例。谢谢你的帮助。
我为我的 Rails 3 应用程序运行 RailsAdmin,该应用程序有两个模型 - 销售和商品。两者之间存在HABTM关系。在 RailsAdmin 中,当添加或编辑销售时,可用商品列表以通常的方式显示。但是,只显示了商品的“名称”栏。我还有另一列需要包含其值才能使列表有意义。如何将它添加到 RailsAdmin 界面?
我知道 RailsAdmin文档说字段声明可以访问包含当前记录实例的绑定散列——但我找不到任何关于如何实现这一点的示例。谢谢你的帮助。
您至少有以下可用对象:
bindings[:object] # the actual object
bindings[:view] # you can access view helpers here
bindings[:controller] # you can access the controller
在这种情况下,您需要的是bindings[:object]
我建议您为此使用自定义对象标签方法。您的 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,还有一些其他的绑定变量是可访问的。