我一直在使用rails服务器来预览我对在gh上共享给我的网站代码所做的一些html/css更改,但我无法访问某些页面,因为我收到此错误:
/media 处无方法错误 nil 的未定义方法“each”:NilClas
这是用户个人资料中功能的页面;我在终端中创建了一个假用户,这样我就可以访问个人资料页面,但我想要在个人资料中使用的用户却给出了该错误。
这是代码的一部分:
<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>
最佳答案
在 irb 中试试这个($ irb)
> x = []
> x[0]
=> nil
> x[1]
=> nil
因此,您的查询很可能 Subject.where(discipline_type: 0)
返回 空白数组 []
,后跟 [1..3]
结果是 nil
后跟 each
,这将导致 每个 nil:NilClas 的未定义方法
您应该使用limit函数(指定要检索的记录数的限制) 例如
Subject.where(discipline_type: 0).limit(3)
所以你的代码应该是这样的
<% Subject.where(discipline_type: 0).limit(3).each do |s| %>
<option value="<%= s.id %>" <%= "selected" if @tri_id==s.id %>><%= s.name %></option>
<% end %>
关于ruby-on-rails - 本地主机中出现 NoMethodError :3000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38856877/