2016-08-03 92 views
0

我需要在同一個網頁上迭代兩組值,所以我寫了一個部分來消除重複的代碼。我試圖迭代的兩個變量是@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

你接近的代碼。而不是@resource只是使用topic,你通過當地傳遞。

<div> 
    <% topic.each do |x| %> 
    <%= x.url%> 
    <% end %> 
<div> 
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

2

既然你不及格@resource爲部分並通過唯一的話題變量,你需要做的是

<div> 
<% topic.each do |x| %> 
<%= x.url%> 
<% end %> 
<div>