在Active Admin中显示值

时间:2013-12-06 11:08:39

标签: ruby-on-rails associations activeadmin formtastic

我试图通过其与formtastic的id来显示属性的值。我有两个模特帽子像这样设置

class Membership < ActiveRecord::Base
has_many :members
attr_accessible :membership_type

end

class Member < ActiveRecord::Base
belongs_to :membership
accepts_nested_attributes_for :membership
attr_accessible :membership_id, :forename, :middlename, :surname, :house_no, :house_name, :street, :town, :postcode, :home_tel, :mobile_tel, :work_tel, :email
end

到目前为止,我的索引视图设置如此

index do
column :forename
column :middlename
column :surname
column :house_no
column :house_name
column :street
column :town
column :postcode
column :home_tel
column :mobile_tel
column :work_tel
column :email
column :membership 

default_actions

但成员资格的值输出为

#<Membership:0x007f2c2064c370>

我如何得到实际值,所以它会说“学生”,例如

通常我会做这样的事情我猜

<% @members.each do |m| %>
<%= m.forname%>
<%= m.surname%>

<% m.memberships.each do |s| %>
<%= s.membership_type%>


<% end %>

但不能在形式上找出它

由于

3 个答案:

答案 0 :(得分:2)

ActiveAdmin尽力使用display name为您的对象找到list of possible attributes

  • :DISPLAY_NAME
  • :FULL_NAME
  • :名称
  • :用户名
  • :登录
  • :标题
  • :电子邮件

要确保您的Membership对象在整个系统中具有可识别的名称,您可以将其中一个属性添加为成员资格的方法:

class Membership < ActiveRecord::Base
  has_many :members
  attr_accessible :membership_type

  def display_name
    membership_type
  end
end

或者,您可以像MichałAlbrycht建议并配置视图以对会员列执行自定义呈现。

答案 1 :(得分:1)

试试这个:

column 'Membership type' do |member|
    "#{member.membership.membership_type}".html_safe
end
column 'Other members' do |member|
    member.membership.members.each() do |m|
      "#{m.forname} #{m.surname}<br/>".html_safe
    end
end

答案 2 :(得分:1)

谢谢@Cmaresh。问题解决了。 This 是我在项目中解决问题的提交链接。任何人都可以看到源代码,并且可以很容易地理解如何解决问题。