我正试图在我的网站标题中显示一个评论计数器,其中有几个选项:
ul
= sync_new partial: "show", resource: Commontator::Comment.new
/ also with
ul
= sync partial: "show", resource: Commontator::Comment.new
/ also with
ul
= sync_new partial: "show", collection: Commontator::Comment.all
/ also with
ul
= sync partial: "show", collection: Commontator::Comment.all
关于我的部分:
li
a = comment.class.all.size
我不清楚sync_new
和sync
之间的区别。
我的理解:
- 在传递集合时,sync为集合中的每个项呈现分部,这对于显示计数器没有意义
- 当传递资源时,sync为传递的资源呈现分部,问题是当创建或销毁另一个注释时,传递的资源不会更新计数器
也许我应该走一个完全不同的方向,比如直接使用王菲。欢迎提出任何建议。
也张贴在这里。
我将创建一个计数器缓存,这样当发布新注释时,缓存就会发生变化。我将使用渲染带有缓存的模型
= sync partial: 'discussion', resource: discussion
然后,当评论被创建、编辑、删除时,部分应该更新。这将是部分:
li
ul
- discussion.thread.comments.each do |comment|
li = comment.body
您可以使用Sync的Javascript回调,如beforeInsert
、afterInsert
、beforeUpdate
、afterUpdate
、beforeDestroy
和afterDestroy
(更多信息)。
每当插入或删除注释时,您可以使用它们来增加/减少特定元素上显示的计数器:
class Sync.CommentShow extends Sync.View
# OVERRIDE
afterInsert: ->
commentsCount += 1;
$('#counter-div').text(commentsCount);
# OVERRIDE
afterRemove: ->
commentsCount -= 1;
$('#counter-div').text(commentsCount);
我希望你和其他观众觉得这很有用。