我想在一个视图中显示来自两个表的数据

时间:2013-08-20 06:53:05

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

我有两个表:一个名为um_org_data,另一个名为addresses

问题在于,我希望um_org_data显示addresses的数据,其中addresses有一个外键um_org_datum_id

以下是我的视图代码,我想在其中一起显示两个表中的数据:

<p id="notice"><%= notice %></p>


<div class="container">
  <div class="row">
      <div class="span3 pull-right">
        <div class="well">
          <h2>Heading</h2>
          <p>Sample text</p>
        </div> 
      </div> 

    <div class="span9">
    <h2>Organization Details</h2>

    <table class="table table-hover">
      <tr>
        <th col span="1" style="width: 200px">
            </i>&nbsp;&nbsp;&nbsp;Organization Name:
        </th>
        <td><%= @um_org_datum.org_name %></td>
      </tr>
      <tr>
        <th col span="1" style="width: 250px">
            </i>&nbsp;&nbsp;&nbsp;Organization Description:
        </th>
        <td><%= @um_org_datum.org_description %></td>
      </tr>
      <tr>
        <th col span="1" style="width: 250px">
          </i>&nbsp;&nbsp;&nbsp;Web Domain:
        </th>
        <td><%= @um_org_datum.webdomain %></td>
      </tr>
      <tr>
        <th col span="1" style="width: 200px">
          <%= fields_for :address_attributes do |p| %>
            <%= p.label 'Office Address' %><br />              
        </th>
        <td><%= p.address.offc_addr %></td>
        <% end %>
      </tr>
      <tr>
        <th col span="1" style="width: 200px">
            </i>&nbsp;&nbsp;Office Phone Number:
        </th>
        <td><%= @um_org_datum.offc_ph %></td>
      </tr>
    </table>

    <div class="control-group">
      <div class="controls">       
       <a class="btn" href="/um_org_data" style="text-color:black">View all</a>


       </div>
    </div>
</div>
</div>
</div>

我不在控制器中使用任何连接查询,因为我不知道如何使用连接查询。如果此问题需要连接查询,请告诉我在视图表单中我需要更改的语法和内容,以显示两个表的属性。

表名:um_org_data,属性:id, oeg_name, org_description, webdomain

表名:adrresses,属性:id, offc_addr, um_org_datum_id

提前致谢!

2 个答案:

答案 0 :(得分:1)

你有1:n关联吗?我是对的吗?

绝对删除fields_for ...你不在表格中!

改变这个:

  <tr>
    <th col span="1" style="width: 200px">
      <%= fields_for :address_attributes do |p| %>
        <%= p.label 'Office Address' %><br />              
    </th>
    <td><%= p.address.offc_addr %></td>
    <% end %>
  </tr>

到此:

  <tr>
    <th col span="1" style="width: 200px">Office Address</th>
    <%= @um_org_datum.addresses.each do |p| %>
     <td><%= p.office_addr %></td>
    <% end %>
  </tr>

检查标记,但逻辑现在应该清除..

答案 1 :(得分:0)

我假设您的模型中有以下内容

um_org_datum

has_many :addresses

地址

belongs_to :um_org_datum

这有用吗?

  <tr>
    <th col span="1" style="width: 200px">Office Address</th>
    <%= @um_org_datum.addresses.each do |p| %>
     <td><%= p.offc_addr %></td>
    <% end %>
  </tr>