渲染部分通过coffeescript打印文字

时间:2018-04-11 09:10:40

标签: ruby-on-rails coffeescript ruby-on-rails-5

我正在尝试在点击按钮时从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') %>")

2 个答案:

答案 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。