javascript - 当我们想要选择具有动态ID的对象时,如何在coffescript jquery中使用ruby代码?

标签 javascript jquery ruby-on-rails ruby coffeescript

嗯,我知道这是一个常见问题,并且找到了很多如何做到这一点的建议,但它对我不起作用,我不明白出了什么问题。

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/

相关文章:

jquery - AJAX .post 异步

javascript - 每次出现在页面上时都将某个单词设为斜体?

ruby-on-rails - 在 Rails 中使用具有多态关联的 "_type"列

ruby-on-rails - 设计 config.timeout_in 不起作用

ruby-on-rails - 插件关系设计

javascript - 使用 Javascript 选择文档中的所有文本框?

javascript - 将 facebook Canvas 应用程序高度设置为等于 Facebook 侧边栏的高度

javascript - 在特定状态下调试浏览器的建议和技巧?

javascript - 如何使用 PHP json_encode 输出 JSON 解析兼容的 json? JSON.parse - 由于单转义双引号导致意外的标记 h

php - 获取select选项的值,直接赋值给url参数