我正在尝试在点击按钮时从coffeescript中渲染部分内容,因此我的coffeescript文件之一“script.js.coffee”包含以下代码:
$('[id^="btn_add_rep_dia_"]').click ->
id = this.id.substring(16)
$("#dia" + id).append("<%= j render('repeticions/form') %>")
但是发生的事情是,在$("#dia" + id)
的末尾出现了文字"<%= j render('repeticions/form') %>"
。 partial位于“repeticions”文件夹中,名为“_form.html.haml”
我还测试了最后一个代码行:
$("#dia" + id).append("<%= escape_javascript( render partial: 'repeticions/form') %>")
答案 0 :(得分:0)
您正尝试在erb
文件中执行.coffee
(嵌入式ruby)模板。 Rails不知道它应该在将文件发送到客户端之前对其进行预处理。
如果您使用的是Rails版本&gt; 3.2,然后只需将您的coffeescript文件从script.js.coffee
重命名为script.js.coffee.erb
就足以指示rails解释erb样式模板字符串(<%...%>
)。
答案 1 :(得分:0)
您无法从普通的coffeescript文件渲染部分内容。如果你想这样做,我建议把那个按钮变成一个带有remote:true的link_to,它可以让你在rails中使用ajax。