使用来自每个标记的变量进行渲染和部分视图

时间:2014-03-05 16:59:57

标签: ruby-on-rails render partial-views

我刚刚开始使用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>

它会为每本书创建一个局部视图,但我的问题是,当我在局部视图中使用变量时,我只得到书的第一个元素,似乎我丢失了每个书的位置的引用环。例如,第一本书是“哈利波特”,第二本书是“指环王”。它的打印总是“哈利波特”。

注意:当我将部分视图的标记放在主视图中时,它可以正常工作。

有没有人知道这方面的解决方案?

1 个答案:

答案 0 :(得分:1)

Rails会为你做循环

<%= render :partial => "prices/book_price", collection: @library.books %>