我一直在使用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>
答案 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 %>