index输出不在.html.erb文件中的内容

时间:2015-04-08 12:27:31

标签: html ruby-on-rails ruby

我正在关注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的新手,所以如果我需要发布更多资源或信息以便让我的问题更清楚,请告诉我。谢谢你的帮助

3 个答案:

答案 0 :(得分:3)

您应该在book.each代码中加入<%来代替<%=代码:

<% books.each do |book| %>

现在,您将books.eachbooks数组)的结果打印到HTML中。

答案 1 :(得分:1)

<%= book.each do |book| %>

打开语法后的相等值打印后面的命令。应该是这种情况,尝试删除它

答案 2 :(得分:0)

从第=

中删除<%= book.each do |book| %>