counter_cache没有在ajax中更新

时间:2013-12-23 16:58:08

标签: javascript ruby-on-rails ajax

我有一个运行类似链接的js代码(带有ajax) - 链接更改为不同(使用正确的路由和方法),我希望更新模型中的columns_count更新同样。

问题是价值没有得到更新。 没有Ajax(整页加载) - 值正常

#create.js.erb
$("#like_link").html("<%= escape_javascript(render("artworks/unlike")) %>")
$("#likes").html('<%= @artwork.likes_count %>')

#relevant html snippet from the view
<div>
  Total likes: <span id="likes"><%= @artwork.likes_count %></span>  
</div>

#model - like.rb
class Like < ActiveRecord::Base
  belongs_to :user
  belongs_to :artwork, :counter_cache => true
end

使用时 $("#likes").html('<%= @artwork.count %>')
它有效,但缺少counter_cache的重点

1 个答案:

答案 0 :(得分:0)

在你的create方法中,在保存你的对象之后,你应该reload你喜欢它的对象,如下所示:

def create
    # some code
    if @like.save
        @artwork.reload # use reload to get the updated counter cache value
    end
end