1

我希望以模型为例(在本例中为Book),并通过 ID 呈现该模型的特定实例。

该模型只是一个基本的脚手架生成模型——通常的show方法;

def show
    @book = Book.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @book }
    end
  end

我希望在视图中嵌入这个实例:

<div class="tab-pane active" id="tab1">
    <%= render :template "books/show", :book => 1 %>
</div>

我可以说我在这里做错了。但我不知道从哪里开始!非常感谢任何帮助。我知道我需要以某种方式传递图书 ID,但我不知道该怎么做。谢谢!

4

3 回答 3

3

<%= render :template "books/show", :book => 1 %>只呈现部分,它不加载页面。
例如,您需要做的是"books/show/#{book_id}"从 iframe 调用路由。

于 2012-05-14T15:50:53.480 回答
2

也许?

<div class="tab-pane active" id="tab1">
  <%= render 'books/show', book: @book %>
</div>
于 2012-05-14T15:54:45.427 回答
1

您在控制器中创建的变量@book 会自动显示在模板中。因此,如果您的模板 show.html.erb 放置在正确的位置,那么

<%= @book.title %>

应该呈现文本(我假设这本书在这里有一个属性标题)。

我不确定您提供的 html 位于何处。它在 show.html.erb 中没有意义,因为您实际上是从那里引用该文件。如果您想呈现一本书的链接,那么您应该这样做

<%= link_to 'Link text', book_path(1) %>
于 2012-05-14T15:52:41.427 回答