2013-11-04 106 views
0

我是Ruby on Rails的新手。Ruby on Rails Activerecord undefined

在控制器

@academic_record = AcademicDetailWeb.where(:term => @sel_term, :sysid=>session[:user_credentials_sysid]) 

視圖

<table> 
    <tr> 
     <th>CRN</th> 
    </tr> 
    <%@academic_record.each do |a|%> 
     <tr> 
      <td> 
       <%= @academic_record.crn %> 
      </td> 
     </tr> 
    <%end%> 
</table> 

它給我 「未定義的方法`CRN」 ActiveRecord的」

我試圖用

@academic_record.first.crn 

它的工作原理,但只顯示第一條記錄

我怎麼能修改它成爲多行記錄?

回答

0

您指的是循環內部的記錄集合。將其改爲指代集合中的一個元素:

<% @academic_record.each do |a|%> 
    <%= a.crn %> 
<% end %> 
0

@academic_record是根據您的條件和每個集合中的每個數據包含crn屬性的學術細節的集合.crn是此集合的每個成員的屬性,而不是集合作爲一個整體,這就是爲什麼當你使用@ academic_record.first.crn它給出了該集合中第一個元素的crn,並且當您使用@ academic_record.crn時,它會給出未定義的方法,因爲整個集合中沒有任何crn屬性,因此您應該執行類似於

<% @academic_record.each do |ar|%> 
    <%= ar.crn %> 
<% end %> 
相關問題