2013-07-06 10 views
1

这些天我正在使用active_admin来管理我的数据。我有一个音频模型和问题模型。音频有许多问题,问题属于音频。 我使用active_admin来创建问题。但问题的新的一页,有一个下拉列表显示了类似内容:Rails:如何在active_admin中以has_many关系显示名称而不是ID或地址?

#<Audio:0xb4116084> 

随着我几乎认不出我想要的文件的地址。我想在Audio的下拉列表中显示的是Audio的标题,它是Audio模型的一个列。我只想在新页面中更改此列,其他人与默认页面保持一致。我该怎么办?谢谢!

回答

7

音频类必须实现DISPLAY_NAME方法

class Audio 
    def display_name 
    title 
    end 
end 

这是从有效源管理员

# Active Admin makes educated guesses when displaying objects, this is 
    # the list of methods it tries calling in order 
    setting :display_name_methods, [ :display_name, 
             :full_name, 
             :name, 
             :username, 
             :login, 
             :title, 
             :email, 
             :to_s ] 

看起来像你还没有这样的方法,所以to_s被称为音频对象

0

您可以使用:member_label。

这里是一个例子

form :html => { :enctype => "multipart/form-data" } do |f| 
    f.input :problems, 
      :input_html => { :multiple => false, :style => "width: 700px;"}, 
      :collection => Audio.all, 
      :member_label => :audio_name 
end 
相关问题