在索引和显示视图上显示嵌套的属性值

时间:2018-07-10 00:42:11

标签: ruby-on-rails

我正在尝试在索引和显示视图上显示一些嵌套属性值。我已经知道它们出现在我的显示视图中,但是所有值都显示在单个记录中。我想我可能需要在某个地方指定ID,但不确定。我在控制器中缺少什么吗?一切似乎都可以保存。

控制器

class CertificationApplicationsController < ApplicationController
  before_action :set_certification_application, only: [:show]

  # GET /certification_applications
  # GET /certification_applications.json
  def index
   @certification_applications = CertificationApplication.all
  end

  # GET /certification_applications/1
  # GET /certification_applications/1.json
  def show
   @certification_applications = CertificationApplication.includes(:individuals)
  end

  private

  def set_certification_application
    @certification_application = CertificationApplication.find(params[:id])
  end
end

查看

这就是我在表演视图中显示它的方式。

<p>
 <strong>Individual receiving certification:</strong>
 <% @certification_applications.each do |ca| %>
   <% ca.individuals.each do |i| %>
     <%= i.email %>
   <% end %>
 <% end %>
</p>

1 个答案:

答案 0 :(得分:0)

稍作休息,并使其在演出后不久就可以使用。只需进行一些调整即可达到目的。

更改了控制器的这一部分:

def show
 @certification_applications = CertificationApplication.includes(:individuals)
end

def show
 @certification_applications = CertificationApplication.includes(:individuals).find(params[:id])
end

我假设这允许属性与正确的ID匹配。

和我的观点

 <% @certification_applications.each do |ca| %>
  <% ca.individuals.each do |i| %>
   <%= i.email %>
 <% end %>
<% end %>

<% @certification_applications.individuals.each do |ca| %>
   <%= ca.name %>
   <%= ca.email %>
<% end %>

将需要确定如何使其与Index一起使用,但这是一个好的开始。