我正在关注ruby on rails教程,使用数据库表构建一个简单的应用程序,由于某种原因,我的主页输出超出了应有的范围。它创建的数组看起来像是使用提示进行的数据库查询,并将其放在页面上。我很确定问题出在我的index.html.erb文件中(如果我清空文件并重新加载奇怪的内容不存在),但我无法弄清楚发生了什么。 Here是发生了什么的屏幕截图。
controller code:
class BooksController < ApplicationController
def new
@page_title = 'Add Book'
@book = Book.new
@category = Category.new
@author = Author.new
@publisher = Publisher.new
end
def create
@book = Book.new(book_params)
@book.save
redirect_to books_path
end
def update
end
def edit
end
def destroy
end
def index
@books = Book.all
end
def show
end
private
def book_params
params.require(:book).permit(:title, :category_id, :author_id, :publisher_id, :isbn, :price, :buy, :format, :excerpt, :pages, :year, :coverpath)
end
end
HTML:
<div id= "books-index">
<% @books.each_slice(4) do |book| %>
<div class = "row">
<%= book.each do |book| %>
<div class="col-md-3 col-sm-3">
<h3><%= book.title %></h3>
<%= image_tag(book.coverpath) %>
<%= link_to 'Read More', book_path(book), class:'btn btn-primary' %>
</div>
<% end %>
</div>
<% end %>
</div>
我是ruby和ruby的新手,所以如果我需要发布更多资源或信息以便让我的问题更清楚,请告诉我。谢谢你的帮助
答案 0 :(得分:3)
您应该在book.each
代码中加入<%
来代替<%=
代码:
<% books.each do |book| %>
现在,您将books.each
(books
数组)的结果打印到HTML中。
答案 1 :(得分:1)
<%= book.each do |book| %>
打开语法后的相等值打印后面的命令。应该是这种情况,尝试删除它
答案 2 :(得分:0)
从第=
行
<%= book.each do |book| %>