嗯,我知道这是一个常见问题,并且找到了很多如何做到这一点的建议,但它对我不起作用,我不明白出了什么问题。
index.html.slim
- books.each do |book|
.row class = "review_form" id = book.id
.panel
== render 'reviews/form', review: review, book: book
book.js.coffee
$('.row.review_form').hide()
$('#new_review_button').on "click", ->
$('.row.review_form#<%= book.id %>').show()
$('#new_review_button').hide()
$('#cancel_review').on "click", ->
$(".row.review_form#<%= book.id %>").hide()
$('#new_review_button').show()
根据说明,如果您想在 javascript 中使用 ruby 代码,您应该使用 <%= ruby code %> 就像我在这里所做的那样 $('.row.review_form#< %= book.id %>').show() 但没有任何反应。似乎当我在括号中写入 <%= 时,它会变成一个字符串,而 js 不明白它是一个带有 ruby 代码的选择器。我究竟做错了什么?请帮忙,我完全困惑了! ><
最佳答案
在您的情况下,您的 CoffeeScript 文件中没有 Rails 对象。您可以将文件重命名为 book.js.coffee.erb
执行<%= %># erb tags
。否则它将仅被视为字符串。引用this回答更多详细信息。希望它有效:-)
关于javascript - 当我们想要选择具有动态ID的对象时,如何在coffescript jquery中使用ruby代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37880727/