我有一个运行类似链接的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的重点
答案 0 :(得分:0)
在你的create方法中,在保存你的对象之后,你应该reload
你喜欢它的对象,如下所示:
def create
# some code
if @like.save
@artwork.reload # use reload to get the updated counter cache value
end
end