2012-02-16 81 views
5

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

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

回答

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显示绑定[:object]可以在这些视图中访问,但是IIRC,还有其他一些可访问的绑定变量。

+0

只是想增加对他人的object_label_method可以直接在模型中加入这样你就可以保留特定模型中的所有配置(并且作为额外的奖励,您不必为了更改新配置而重新启动服务器)。 – 2015-11-11 19:57:10

5

您至少提供以下对象:

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

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