我们有一个link_to发送ajax帖子,并想知道是否有办法改变发送标签的内容。
我们基本上想要更新数据库,然后更改link_to块中的图标。
<%= link_to add_favorite_path({type: type, id: id}),
type:"button", disable_with: '...', :method => :post,
:remote => true, class: 'btn btn-default btn-sm', id: "#{type}-#{id}" do %>
<i class="fa fa-plus"></i>
<% end %>
这是最喜欢的控制器:
class FavoritesController < ApplicationController
respond_to :js
def add
@type = params[:type]
@id = params[:id]
@selector = "#{@type}-#{@id}"
end
end
编辑:add.js.erb:
var link = $("a#<%= @selector %>");
link.html('<i class="fa fa-check"></i>');
找到解决方案:
使用disable_with:
选项时无法更改项html。删除它,它的工作原理。
答案 0 :(得分:1)
您可以确保相应的控制器响应JS
respond_to :js, :html
然后创建视图文件add.js.erb
以添加适当的JS以呈现新图标。
我想看到更多的代码,但有类似的东西
$("#id_of_link").html("<i class='fa fa-check'></i>");
虽然,我通常创建partials和escape_javascript来渲染JS中的新部分