我希望以模型为例(在本例中为 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,但我无法弄清楚如何做到这一点。谢谢!
答案 0 :(得分:3)
<%= render :template "books/show", :book => 1 %>
仅渲染部分内容,而不是加载页面
您需要做的是从iframe调用路线"books/show/#{book_id}"
。
答案 1 :(得分:2)
也许?
<div class="tab-pane active" id="tab1">
<%= render 'books/show', book: @book %>
</div>
答案 2 :(得分:1)
您在控制器中创建的变量@book会自动显示在模板中。因此,如果您的模板show.html.erb位于正确的位置,那么
<%= @book.title %>
应该呈现文本(我假设本书在这里有一个属性标题)。
我不确定您提供的HTML位于何处。它在show.html.erb中没有意义,因为你实际上从那里引用了那个文件。如果您想要呈现书籍的链接,那么您应该
<%= link_to 'Link text', book_path(1) %>