在RailsAdmin上的列表中添加其他列值

时间:2012-02-16 13:40:16

标签: ruby-on-rails rails-admin

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

我理解RailsAdmin docs说字段声明可以访问包含当前记录实例的绑定哈希 - 但我找不到任何如何实现它的示例。谢谢你的帮助。

2 个答案:

答案 0 :(得分: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还有一些其他可以访问的绑定变量。

答案 1 :(得分:5)

您至少可以使用以下对象:

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

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