我需要在同一个网页上迭代两组值,所以我写了一个部分来消除重复的代码。我试图迭代的两个变量是@bookmarks
和@liked_bookmarks
。
如果我在部分自我中使用@bookmarks
或@liked_bookmarks
,则部分会正确呈现,但会显示唯一的一个值集。在下面的代码中,我尝试使用@resource
作为替代,将@bookmarks
和@liked_bookmarks
传递给它。
这是app/views/bookmarks/_bookmarksandlikes.html.erb
<div>
<% @resource.each do |x| %>
<%= x.url%>
<% end %>
<div>
这是我在app/views/users/show.html.erb
<h1>My Blocmarks</h1>
<p>Find me in app/views/users/show.html.erb</p>
<div>
<h1>Blockmarks I have created </h1>
<div class =row>
<%= render partial: 'bookmarks/bookmarksandlikes', locals: { topic: @bookmarks} %>
</div>
</div>
<div>
<h1>Blockmarks I have liked
<%= render partial: 'bookmarks/bookmarksandlikes', locals: { topic: @liked_bookmarks} %>
</h1>
</div>
答案 0 :(得分:3)
你关闭了。而不是@resource
只使用您作为本地传递的topic
。
<div>
<% topic.each do |x| %>
<%= x.url%>
<% end %>
<div>
答案 1 :(得分:2)
由于您没有将@resource传递给partial并且只传递主题变量,您需要这样做
<div>
<% topic.each do |x| %>
<%= x.url%>
<% end %>
<div>
答案 2 :(得分:1)
而不是:
<div>
<% @resource.each do |x| %>
<%= x.url%>
<% end %>
<div>
做到:
<div>
<% topic.each do |x| %>
<%= x.url%>
<% end %>
<div>
由于您在locals: { topic: @liked_bookmarks}
上传递了该对象,因此您应使用topic
而不是instance that is not initialize
。