试图让我的部分工作

时间:2016-08-03 01:55:36

标签: ruby-on-rails ruby

我需要在同一个网页上迭代两组值,所以我写了一个部分来消除重复的代码。我试图迭代的两个变量是@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>

3 个答案:

答案 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