我正在使用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转义。 –