0

發電機的has_many:結果 結果belongs_to的:發電機未定義的方法`ncbi_ref_seq」 <ActiveRecord的::協會:: CollectionProxy []>

我想有一個頁面由此我可以查看所有發電機和結果。

例如:這是從我的發電機/ index.html的

enter image description here

這是從結果/ index.html的

enter image description here

我想擁有的是結合他們在一起並查看所有數據。 enter image description here

現在這是我已經改變,但我得到錯誤消息未定義的方法ncbi_ref_seq。 (ncbi_ref_seq是屬於類結果的屬性)

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

由於發生器具有許多結果。當你使用generator.results時,它會返回一個活動記錄集合,所以會有幾個結果記錄,所以你不能只增加一個ncbi_ref_seq。

要麼你必須通過generator.results和輸出的每個ncbi_ref_seq循環,像這樣

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

或發電機HAS_ONE結果。

+0

嗨Althhaf:感謝您的幫助。但在我的生成器/索引視圖中,我正在加載代碼<%@ generators.each do | generator | %>之後,我有一個。如果我要添加你寫的代碼,我應該在哪裏放置它們?我曾嘗試過它,它也給我錯誤(每個都是未定義的方法或什麼) – BC2

+0

對不起,我在我的代碼中犯了一個錯誤。我編輯它。用你的代碼​​<%= generator.results.ncbi_ref_seq%>替換這一行。 –

+0

好消息是,沒有錯誤了,但我得到的是空的數據。數據已保存,但頁面未顯示任何數據。 – BC2

相關問題