我正在尝试使用jquery基于rails事件向现有表添加行。 这一行中有rails代码。我的大多数功能都有效,但是这是一个大问题
function addCompanyRow(company) {
var row_class = 'fav_company_'+company.id;
$('#current_favorites tr:last').after(
'<tr class=\"'+ row_class+'\"><td>'+company.id+'</td><td>'+company.symbol+'</td><td>'+company.name+'</td><td>'
+'<%= button_to remove_favorite_path('+company.id+'), method: :patch, remote: true, class: "btn btn-default" do%> <i class="glyphicon glyphicon-remove"></i> <% end %>'
+'</td></tr>'
).animate("slow");
}
然而,由于这部分
'<%= button_to remove_favorite_path('+company.id+'),
html使用text.id文本而不是变量
的值生成<form class="button_to" method="post" action="/favorite/remove/+company.id+" data-remote="true">
有没有办法用jquery正确生成button_to,以便使用变量值而不是名称?
答案 0 :(得分:1)
我认为这不可能,就像你在尝试一样。
您无法将javascript,及时中的变量作为ruby代码的参数传递,该代码仅在最初编译.erb
模板时执行。
我认为你需要放弃以这种方式使用button_to
,并用一种完全不同的方法来解决你的问题。
明显可行的方法,不知道这里发生了什么:不要在客户端渲染这个按钮:而是通过ajax从服务器获取它的html。
或者你仍然可以使用JavaScript,但只从rails获取基本路径。这样的事情:
var buttonPath = '<%= remove_favorite_path %>/' + id;
工作正常。