I have something similar to a blog post that users can add comments to.
I’m use a partial to render the list of comments and a form that submits
a new comment via AJAX to update the list. The AJAX call uses the same
partial. My question is, how can I mark the last added comment so that I
can use page.visual_effect to give it a yellow fade. Currently, I can
highlight the entire block of comments. Everything I’ve tried causes
problems. :after_create won’t work, as far as I can tell, because it’s
wrapped into the create method and no changes have been committed to the
database yet.
This seems like it should be a pretty simple task, highlighting the last
change to a list rendered as from a collection, but I can’t figure it
out. Any thoughts?
On May 7, 12:36 am, Justin Mclachlan <rails-mailing-l…@andreas-
s.net> wrote:
This seems like it should be a pretty simple task, highlighting the last
change to a list rendered as from a collection, but I can’t figure it
out. Any thoughts?
maybe I’m being completely dumb, but can’t you do
render :update do
page.insert_html :bottom, ‘comment_list’, :partial =>
‘comment’, :object => new_comment
page.visual_effect dom_id(new_comment)
end
or something along those lines ?
Fred
Frederick C. wrote:
render :update do
page.insert_html :bottom, ‘comment_list’, :partial =>
‘comment’, :object => new_comment
page.visual_effect dom_id(new_comment)
end
or something along those lines ?
Fred
I tried something similar (though I’m placing the comments at the top)
and it worked – unless you submit more than one comment without
manually reloading the page. Then it didn’t update / highlight
correctly.
Here’s what I tried (I call them notes):
page.insert_html :top, ‘query_notes’, :partial => ‘queries/notes’,
:collection => @note
page.visual_effect :highlight
On 6 May 2009, at 16:52, Justin Mclachlan
<[email protected]
wrote:
:collection => @note
page.visual_effect :highlight
Aren’t you some missing method arguments there ? I’d check that
you’re not stuffing invalid HTML into the dom (or duplicate ids or
anything like that)
Justin Mclachlan wrote:
This seems like it should be a pretty simple task, highlighting the last
change to a list rendered as from a collection, but I can’t figure it
out. Any thoughts?
simplest thing is to mark each comment with its ID… and then highlight
element with name_id (eg)
@newpost = @post.comments.new
…
render :update do |page|
page.insert_html :bellow, ‘comments’, :partial => ‘comment’, :object
=> @newpost
page.visual_effect :highlight, 'comment_'[email protected]_s
end
and _comment.html.erb:
<%= comment.body %>
…
tom
===============================================================================
Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache
Tom Z Meinlschmidt wrote:
@newpost = @post.comments.new
…
render :update do |page|
page.insert_html :bellow, ‘comments’, :partial => ‘comment’, :object
=> @newpost
page.visual_effect :highlight, 'comment_'[email protected]_s
end
and _comment.html.erb:
<%= comment.body %>
That worked beautifully. Thanks.