在jQuery + ERB的视图中获取6:Fixnum(Rails)的未定义方法`gsub'?

ale*_*nco 6 ruby ruby-on-rails-3

我正在尝试将一些jQuery + ERB添加到特定视图:

views/posts/show.html.erb(文件顶部):

<% content_for :javascript do %>
  <script type="text/javascript">
    $(".post-<%=@post.id%> h3").prepend('<%=escape_javascript @post.votes.count %>');
  </script>
<% end %>

<h2>posts show</h2>

(etc...)

<div class="post-<%=@post.id%>">
  <h3>votes</h3><br />
  <%= link_to "Vote Up", vote_up_path(@post), :remote => true %><br />
</div>
Run Code Online (Sandbox Code Playgroud)

views/layouts/application.html.erb(文件底部):

(etc...)

</div>

<%= yield %>

<%= yield :javascript %>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

undefined method `gsub' for 6:Fixnum
Extracted source (around line #3):

1: <% content_for :javascript do %>
2:   <script type="text/javascript">
3:     $("post-<%=@post.id%>").html('<%=escape_javascript @post.votes.count %>');
4:   </script>
5: <% end %>
Run Code Online (Sandbox Code Playgroud)

有什么建议来解决这个问题

And*_*all 14

escape_javascript调用gsub你传递给它的任何东西,这对一个数字没有意义.您可以不调用escape_javascript或给它一个字符串:

$("post-<%=@post.id%>").html('<%=escape_javascript @post.votes.count.to_s %>');
Run Code Online (Sandbox Code Playgroud)