2016-08-03 45 views
0

我有一個部分,從一個數據庫的列迭代它,並顯示在網頁上的所有網址。我想添加我寫在我的app/views/topics/show.html.erb頁面中的行,允許用戶編輯,刪除或喜歡鏈接。試圖適應代碼形式我的意見之一是在部分呈現

這些是我想適應添加到部分的三條線,前兩條是執行編輯和刪除功能的按鈕,第三條是使用類似代碼的部分鏈接。

<%= link_to "Edit bookmark", edit_topic_bookmark_path(bookmark.topic, bookmark), class: 'btn btn-primary btn-xs'%><br> 
<%= link_to "Delete bookmark", [bookmark.topic, bookmark], method: :delete, class: 'btn btn-danger btn-xs', data: { confirm: 'Are you sure you want to delete this bookmark?' } %> 
<%= render partial: 'likes/likes', locals: { bookmark: bookmark } %> 

這部分我想它適應位於app/views/bookmarks/_bookmarksandlikes.html.erb

<div> 
    <h3> 
     <%y=1%> 
     <% mark.each do |x| %> 
      <%=y%>)<%= link_to x.url, x.url%> 
      <%y=y+1%> 

     <% end %> 
    </h3> 
</div> 

,它正在從app/views/users/show.html.erb與這兩條線叫。

<%= render partial: 'bookmarks/bookmarksandlikes', locals: { mark: @bookmarks} %> 
<%= render partial: 'bookmarks/bookmarksandlikes', locals: { mark: @liked_bookmarks} %> 

這裏就是我試圖將代碼插入到部分

<div> 
    <h3> 
    <%y=1%> 
    <% mark.each do |x| %> 
     <%=y%>)<%= link_to x.url, x.url%> 
     <%y=y+1%> 
     <%= link_to "Edit bookmark", edit_topic_bookmark_path(x.topic, x), class: 'btn btn-primary btn-xs'%><br> 
     <%= link_to "Delete bookmark", [x.topic, x], method: :delete, class: 'btn btn-danger btn-xs', data: { confirm: 'Are you sure you want to delete this bookmark?' } %> 
     <%= render partial: 'likes/likes', locals: { x: x } %> 
    <%end%> 
</h3> 

當我運行的代碼是我得到一個錯誤頁,上面寫着「undefined local variable or method 'bookmark' for #<#<Class:0x007fdfb1b39c80>:0x007fdfb1988d50> Did you mean? bookmark_url or @bookmarks

並且說第3行有部分代碼喜歡頁面出現問題app/views/likes/_likes.html.erb

<% if policy(Like.new).create? %> 
    <div> 
    <% if like = current_user.liked(bookmark) %> 
    <%= link_to [bookmark, like], class: 'btn btn-danger', method: :delete do %> 
     <i class="glyphicon glyphicon-star-empty"></i>&nbsp; Unlike 
    <% end %> 
<% else %> 
    <%= link_to [bookmark, Like.new], class: 'btn btn-primary', method: :post do %> 
    <i class="glyphicon glyphicon-star"></i>&nbsp; Like 
    <% end %> 
<% end %> 
</div> 
<% end %> 

注意在這一點上通過這個問題的工作,似乎只有第三行爲部分我試圖插入給我的問題,編輯和刪除按鈕渲染很好。

即使你不知道答案我很想聽聽我對這個問題或者你的想法沒有考慮的任何想法,如果你需要更多的信息,請讓我知道,我會發布更多。

謝謝你看我的問題。

+2

那麼你遇到了什麼問題? – Shaunak

+0

我得到一個錯誤消息,說:「未定義的局部變量或方法書籤爲#<#:0x007fdfb1c67ee0>你的意思是嗎?bookmark_url或@書籤' 也感謝你問,它使我回去檢查一些事情。 – SinGar

回答

0

我想通了,我的問題,我不能使用的部分,因爲該部分app/views/likes/_likes.html.erb正在採取比正被app/views/bookmarks/_bookmarksandlikes.html.erb通過不同的變量,所以我只是把需要的代碼放到app/views/bookmarks/_bookmarksandlikes.html.erb和適應它像這樣。

<div class=row> 
    <h3> 
     <%y=1%> 
     <% mark.each do |x| %> 
     <%=y%>)<%= link_to x.url, x.url%><br> 
     <%y=y+1%> 
     <%= link_to "Edit bookmark", edit_topic_bookmark_path(x.topic, x), class: 'btn btn-primary btn-xs'%><br> 
     <%= link_to "Delete bookmark", [x.topic, x], method: :delete, class: 'btn btn-danger btn-xs', data: { confirm: 'Are you sure you want to delete this bookmark?' } %><br> 
     <% if like = current_user.liked(x) %> 
     <%= link_to [x, like], class: 'btn btn-danger', method: :delete do %> 
     <i class="glyphicon glyphicon-star-empty"></i>&nbsp; Unlike 
     <% end %> 
    <% else %> 
     <%= link_to [x, Like.new], class: 'btn btn-primary', method: :post do %> 
     <i class="glyphicon glyphicon-star"></i>&nbsp; Like 
     <% end %> 
     <br> 
     <% end %> 
     <%end%> 

    </h3> 
    </div> 
相關問題