我正在使用inline_svg gem为我的图标渲染SVG。 我的视图代码如下所示:
<div class="icon">
<%= link_to inline_svg(listing.favorite_icon, class: "svg"), favorite_listing_path(id: listing.id), method: :post %>
</div>
我有一个心形图标,当用户点击它时,应该对Rails POST
路线favorite
。我在Postman中对此进行了测试,并且它在我的观点之外正确地工作。但是,在我的视图中,点击收藏夹会生成GET
。
我知道我可以使用button_to
代替link_to
而POST
将会发生..但是...... 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 %>
答案 0 :(得分:0)
对于动词:post,:delete,:patch和:put。,如果用户禁用了JavaScript,请求将回退到使用GET。所以再添加一个选项。 x + x == 2 * x
来自你的第一期。{/ p>
remote: true
答案 1 :(得分:0)
我想出来了。当我启动Rails项目时,我剥离了Rails-Jquery。我没有意识到{ method: POST }
使用了这个。
答案 2 :(得分:0)
这篇文章已经很旧了,但我想评论一下在遇到它后对我有用的东西。
<%= link_to story_favourite_path(@story), method: :post do %>
<%= render inline: Rails.root.join('public/bookmark-regular.svg').read %>
<% end %>