用于#<activerecord :: associations :: collectionproxy [] =“”> </activerecord :: associations :: collectionproxy>的未定义方法`ncbi_ref_seq'

时间:2013-07-14 16:52:25

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

生成器has_many:结果 结果belongs_to:generator

我希望有一个页面,我可以查看所有生成器和结果。

例如:这来自我的generator / index.html

enter image description here

这是来自result / index.html

enter image description here

我想要的是将它们组合在一起并查看所有数据。enter image description here

现在这是我改变了但是我得到了ncbi_ref_seq的错误消息未定义方法。 (ncbi_ref_seq是属于类Result的属性)

GeneratorController.rb

def index
    @generators = Generator.all(:include => [:results])
  end

发电机/ index.html.erb

 <tbody>
     <% @generators.each do |generator| %>
     <tr>
        <td><%= generator.primer_length %></td>
        <td><%= generator.choice %></td>
        <td><%= generator.random_primer_generated %></td>
        <td><%= generator.c_primer %></td>
        <td><%= generator.results.ncbi_ref_seq %></td>
    </tr>
     <% end %>

1 个答案:

答案 0 :(得分:1)

由于发电机有很多结果。当你使用generator.results它会返回一个Active Record Collection,因此会有几个Results记录,所以你不能只是额外的ncbi_ref_seq。

您必须循环通过generator.results并输出每个ncbi_ref_seq,如此

<% for result in generator.results %>
  <%= result.ncbi_ref_seq %>
<% end %>

或者生成器has_one结果。