Rails同步-更新布局中的计数器



我正试图在我的网站标题中显示一个评论计数器,其中有几个选项:

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_newsync之间的区别。

我的理解:

  1. 在传递集合时,sync为集合中的每个项呈现分部,这对于显示计数器没有意义
  2. 当传递资源时,sync为传递的资源呈现分部,问题是当创建或销毁另一个注释时,传递的资源不会更新计数器

也许我应该走一个完全不同的方向,比如直接使用王菲。欢迎提出任何建议。

也张贴在这里。

我将创建一个计数器缓存,这样当发布新注释时,缓存就会发生变化。我将使用渲染带有缓存的模型

= sync partial: 'discussion', resource: discussion

然后,当评论被创建、编辑、删除时,部分应该更新。这将是部分:

li
  ul
    - discussion.thread.comments.each do |comment|
      li = comment.body

您可以使用Sync的Javascript回调,如beforeInsertafterInsertbeforeUpdateafterUpdatebeforeDestroyafterDestroy(更多信息)。

每当插入或删除注释时,您可以使用它们来增加/减少特定元素上显示的计数器:

class Sync.CommentShow extends Sync.View
  # OVERRIDE
  afterInsert: ->
    commentsCount += 1;
    $('#counter-div').text(commentsCount);
  # OVERRIDE
  afterRemove: ->
    commentsCount -= 1;
    $('#counter-div').text(commentsCount);

我希望你和其他观众觉得这很有用。

相关内容

  • 没有找到相关文章

最新更新