Rails 同步 - 更新布局中的计数器
Rails Sync - Update a counter in layout
我正尝试在我的网站 header 中显示一个评论计数器,有几个选项:
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
的区别。
我的理解:
- 当传递 collection 时,同步呈现 collection 中每个项目的部分,这没有意义显示计数器。
- 当传递资源时,sync 渲染传递的资源的部分,问题是当创建或销毁另一个评论时,传递的资源不会更新计数器。
也许我应该转向完全不同的方向,比如直接使用 Faye。任何建议表示赞赏。
也发布了 here。
我将创建一个计数器缓存,以便在发布新评论时缓存发生变化。我将使用缓存渲染模型:
= sync partial: 'discussion', resource: discussion
然后,当评论被创建、编辑、删除时,部分应该更新。这将是部分:
li
ul
- discussion.thread.comments.each do |comment|
li = comment.body
您可以使用 Sync 的 Javascript 回调,例如 beforeInsert
、afterInsert
、beforeUpdate
、afterUpdate
、beforeDestroy
、和 afterDestroy
(more info)。
您可以使用它们 increase/decrease 每当插入或删除评论时在特定元素上显示的计数器:
class Sync.CommentShow extends Sync.View
# OVERRIDE
afterInsert: ->
commentsCount += 1;
$('#counter-div').text(commentsCount);
# OVERRIDE
afterRemove: ->
commentsCount -= 1;
$('#counter-div').text(commentsCount);
希望您和其他观众觉得这有用。
我正尝试在我的网站 header 中显示一个评论计数器,有几个选项:
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
的区别。
我的理解:
- 当传递 collection 时,同步呈现 collection 中每个项目的部分,这没有意义显示计数器。
- 当传递资源时,sync 渲染传递的资源的部分,问题是当创建或销毁另一个评论时,传递的资源不会更新计数器。
也许我应该转向完全不同的方向,比如直接使用 Faye。任何建议表示赞赏。
也发布了 here。
我将创建一个计数器缓存,以便在发布新评论时缓存发生变化。我将使用缓存渲染模型:
= sync partial: 'discussion', resource: discussion
然后,当评论被创建、编辑、删除时,部分应该更新。这将是部分:
li
ul
- discussion.thread.comments.each do |comment|
li = comment.body
您可以使用 Sync 的 Javascript 回调,例如 beforeInsert
、afterInsert
、beforeUpdate
、afterUpdate
、beforeDestroy
、和 afterDestroy
(more info)。
您可以使用它们 increase/decrease 每当插入或删除评论时在特定元素上显示的计数器:
class Sync.CommentShow extends Sync.View
# OVERRIDE
afterInsert: ->
commentsCount += 1;
$('#counter-div').text(commentsCount);
# OVERRIDE
afterRemove: ->
commentsCount -= 1;
$('#counter-div').text(commentsCount);
希望您和其他观众觉得这有用。