我收到了错误
NoMethodError in Data#input Showing /home/adijanuarsyah/Projects/Food/app/views/data/_idfood.html.erb
第8行引出:
undefined method `find' for #<TopFood:0x007fdfd558fa90>
当我使用find方法获取查询食物= foods.find(rand_number)我得到如上所述的错误,但是当使用TopFood.find(rand_number)时,它的工作完美。
这是我的观点
<h2>Suggestion Indonesian top dishes</h2>
<ul id="foodList">
<% TopFood.where(:country => "ind").find_each do |foods | %>
<% rand_number = rand(52) + 1 %>
<% @food = foods.find(rand_number)%>
<li><%= @food.name %></li>
<% puts @food.inspect %>
<% end %>
</ul>
<div id="loadMore">More sugesstions</div>
<div id="showLess">Show less</div>
关于这里发生了什么的任何线索?
感谢。
答案 0 :(得分:0)
find
是一个类方法,无法在foods
之类的实例上调用。
要修复您的代码,您可以这样做:
<% TopFood.where(:country => 'ind', :id => rand(52) + 1).find_each do |food| %>
<li><%= food.name %></li>
<% puts food.inspect %>
<% end %>
如果您想以随机顺序显示结果,可以执行以下操作:
如果您的数据库是MySQL:
<% TopFood.where(:country => 'ind').order('RAND()').find_each do |food| %>
如果您的数据库是PostgreSQL或SQLite:
<% TopFood.where(:country => 'ind').order('RANDOM()').find_each do |food| %>