localhost:3000中的NoMethodError

时间:2016-08-09 17:18:13

标签: ruby-on-rails ubuntu localhost

我一直在使用rails服务器预览我在gh上分享的网站代码中的一些html / css更改,但我无法访问某些页面,因为我收到此错误:

/ media的NoMethodError 未定义的方法`每个'为零:NilClas

这是来自用户个人资料中的功能的页面;我在终端中创建了一个虚假用户,因此我可以访问个人资料页面,但是我想在内部个人资料页面中提供该错误。

这是代码swowing的一部分:

  <div class="select_wrapper">

      <select name="trienal_id" id="" required>

      <option value="" disabled>Trienal</option>

      **<% Subject.where(discipline_type: 0)[1..3].each do |s| %>**

            <option value="<%= s.id %>" <%= "selected" if @tri_id==s.id %>><%= s.name %></option>

            <% end %>

       </select>

 </div>

2 个答案:

答案 0 :(得分:4)

在irb ($ irb)

中尝试此操作
> x = []
> x[0]
=> nil
> x[1]
=> nil

因此,您的查询Subject.where(discipline_type: 0)很可能正在返回blank array [],其后[1..3]结果为nil,后跟each,这将导致{{1} }}

您应该使用limit函数(指定要检索的记录数限制) e.g。

undefined method each for nil:NilClas

所以你的代码应该是

Subject.where(discipline_type: 0).limit(3)

答案 1 :(得分:0)

Subject.where可能返回的记录少于您的范围索引指定的记录。不知道为什么你有[1..3]。在Subject.where上使用each,如果需要根据条件对其进行更多限制,请添加到where子句。

<% Subject.where(discipline_type: 0).each do |s| %>
   <!-- your code here -->
<% end %>