在模型视图中查看其他模型的列

时间:2013-08-27 05:49:35

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我有两个名为um_org_data.rb

的模型
class UmOrgDatum < ActiveRecord::Base


  attr_accessible :org_description, :org_name, :webdomain, :addresses, :addresses_attributes

  has_many :addresses

  accepts_nested_attributes_for :addresses
end

addresses.rb

class Address < ActiveRecord::Base
  attr_accessible :offc_addr

  belongs_to :um_org_datum

end

在我的控制器中,我在代码um_org_data.rb

中使用了join ..
class UmOrgDataController < ApplicationController
  # GET /um_org_data
  # GET /um_org_data.json
  def index
     @um_org_data = UmOrgDatum.joins(:addresses)
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @um_org_data }
    end
  end

现在在我看来我想在addresses.rb的{​​{1}}视图中显示offc_addr列的数据,我在哪个控制器中使用了连接...我的视图代码如下:

um_org_data.html.erb

告诉我如何在该视图中显示其他表的列。

1 个答案:

答案 0 :(得分:1)

您希望每个组织都有多个地址吗?如果是,那么做

<td><%= um_org_datum.addresses.pluck(:offc_addr).join(', ') %></td>

这将以逗号分隔的列表为您提供一列地址。如果每个组织只应有一个地址,请使用has_one :address并在您的视图中

<td><%= um_org_datum.address.offc_addr %></td>

您目前遇到的问题是您将um_org_datum.addresses视为单个模型实例,而实际上它是一个地址数组。