我正在使用inline_svg gem爲我的圖標渲染SVG。 我的觀點的代碼如下所示:我可以使用Rails link_to進行POST而不是button_to嗎?
<div class="icon">
<%= link_to inline_svg(listing.favorite_icon, class: "svg"), favorite_listing_path(id: listing.id), method: :post %>
</div>
我有一個心臟圖標,當用戶點擊它,一個POST
應Rails的favorite
途徑取得。我在郵差測試中測試了它,它確實在我的觀點之外正確工作。但是,在我看來,單擊最愛會生成一個GET
。
我知道我可以使用button_to
代替link_to
和POST
然後將happen..BUT ... button_to
不能正常顯示我的SVG(見附件圖片)。
所以我可以去兩種方法之一...有人可以幫我把我的link_to到POST
?或者可以有人給我一個線索,爲什麼我的SVG不能正確渲染button_to
?
隨着link_to
:
隨着button_to
:
更新:這裏有一些事情我已經試過......點擊仍然處於GET
結果。 另外,我在Rails 4.2上,如果這有所作爲。
<%= link_to "hi", controller: "listings", action: "favorite", id: listing.id, method: :post %>
<%= link_to(inline_svg(listing.favorite_icon, class: "svg"), controller: "listings", action: "favorite", id: listing.id, method: :post) %>
<%= link_to(favorite_listing_path(id: listing.id), method: :post) do %>
<div class="icon">
<%= inline_svg(listing.favorite_icon, class: "svg") %>
</div>
<% end %>
我不知道這是否有幫助,但試試這個:'<%= link_to(inline_svg(listing.favorite_icon,class:「svg」),favorite_listing_path(id:listing.id),method :: post )%>'或者可以使用'do end'來使用'link_to'塊。 – Deep
@Deep將他們指向[documentation](http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to),您可以將該評論轉換爲正確的答案。 –
至於'button_to'的東西,你可能想要拋出一個'.html_safe'調用來告訴Rails你的SVG字符串不需要被HTML轉義。 –