我刚刚开始使用Rails,但还没有为这种情况找到解决方案。
我有一个视图,我希望使用渲染在局部视图上分开一些部分。想象一下,我有一个图书馆和一些书籍。我想为每本书创建一个特定的视图。
查看:
<% @library.books.each do |book| %> //each book has a name and price
//some stuffs using book.name and book.price
<%= render :partial => "prices/book_price", :locals => { :book=> book } %>
<% end %>
部分视图:
<div class='book_price'>
<div class="form-group">
<h1> <%= book.name %> </h1>
<br>
<span><%= book.price%></span>
</div>
</div>
它会为每本书创建一个局部视图,但我的问题是,当我在局部视图中使用变量时,我只得到书的第一个元素,似乎我丢失了每个书的位置的引用环。例如,第一本书是“哈利波特”,第二本书是“指环王”。它的打印总是“哈利波特”。
注意:当我将部分视图的标记放在主视图中时,它可以正常工作。
有没有人知道这方面的解决方案?
答案 0 :(得分:1)
Rails会为你做循环
<%= render :partial => "prices/book_price", collection: @library.books %>