【问题标题】:Show value in Active Admin在 Active Admin 中显示价值
【发布时间】:2013-12-06 11:08:38
【问题描述】:

我试图通过它的 id 和 formtastic 来显示一个属性的值。我有两个模型帽子是这样设置的

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 %>

但在formtastic中无法弄清楚

谢谢

【问题讨论】:

  • 我看到你提到了formtastic,但你分享的观点是针对索引的。你想用formtastic完成什么?有什么例子吗?

标签: ruby-on-rails associations activeadmin formtastic


【解决方案1】:

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

  • :display_name
  • :全名
  • :姓名
  • :用户名
  • :登录
  • :标题
  • :电子邮件

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

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

  def display_name
    membership_type
  end
end

或者,您可以按照 Michał Albrycht 的建议进行操作,并配置视图以执行成员资格列的自定义呈现。

【讨论】:

    【解决方案2】:

    试试这个:

    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
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-27
        • 2012-03-20
        • 1970-01-01
        • 1970-01-01
        • 2013-08-08
        相关资源
        最近更新 更多