2013-11-04 107 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 %> 
相关问题