这是我的控制器static_pages: -
class StaticPagesController < ApplicationController #StaticPagesController is a ruby class that inherits from ApplicationController
def home
end
def genre
@genre=Genre.all
@book=Book.find_by(genre_id:1)
end
def accessories
end
def aboutus
end
def contactus
end
end
#home, genre and accessories are actions of the controller
这是我视图类型的片段。html.erb:
<% @genre.each do|genre|%>
<tr>
<td><%=genre.genre_id %></td>
<br>
<td><%=genre.genre_name %></td>
<br>
<td><%=genre.description %></td>
<br>
<br>
</tr>
<% end %>
<% @book.each do|book|%>
<tr>
<td><%=book.book_name %></td>
<br>
<td><%=book.pages %></td>
<br>
<td><%=book.stock %></td>
<br>
<td><%=book.synopsis %></td>
<br>
<td><%=book.mrp%></td>
<br>
<td><%=book.author %></td>
<br>
<td><%=book.publisher %></td>
<br>
<td><%=book.rating %></td>
<br>
<td><%=book.genre_name%></td>
<br>
<td><%=book.discount %></td>
<br>
<br>
</tr>
<% end %>
当我打开流派视图时,我会遇到本书部分的错误。它说#book的未定义方法"每个":0x007F014AB326D8。我不确定为什么要遇到此错误,因为我从类型部分复制了粘贴的东西,但这没有显示错误,所以为什么?
def genre
@genre=Genre.all
@books =Book.where(genre_id:1)
end
这里的书。
根据此处的文档
find_by -
find_by方法找到了与某些条件相匹配的第一个记录。例如:
因此,从本质上讲,它将查询的结果仅限为1个记录,并且每种方法都在收集记录
上工作。 SELECT "books".* FROM "books" WHERE "books"."genre_id" = $1 LIMIT 1[["genre_id", 1]]
如果我在哪里使用 book.where(genre_id:1(
触发的查询是SELECT "books".* FROM "books" WHERE "books"."genre_id" = $1 [["genre_id", 1]]