Hi,
I''ve got an ajax call who''s response does some complicated
things on
the view. I''ve already created this view in ruby on the server, so
I''d
rather not rewrite the entire thing in javascript when the ajax call
returns.
It seems like it should be easy enough to resend the current view
(minus the layout) in response to the json call, but I''m having
trouble figuring out what should go in the controller.
In other words, here''s the standard controller action:
# POST /my_controller
# POST /my_controller.json
def create
@my_controller = MyController.new(params[:my_controller])
respond_to do |format|
if @my_controller.save
format.html { redirect_to :back }
format.json { render json: @my_controller, status: :created,
location: @my_controller } # <--- here
else
format.html { redirect_to :back }
format.json { render json: @my_controller.errors, status:
:unprocessable_entity }
end
end
end
At the place I''ve marked "<--- here", I''d like to
basically return
what would happen on "redirect :back" except I don''t want the
round
trip to the browser, nor the layout, and I''d like to return it as part
of the json object.
In other words, I''m looking for something like this:
format.json { render json: { html:
get_html(request.env[''REQUEST_URI'']) }, status: :created,
location:
@my_controller } # <--- here
def get_html(uri)
# TODO: How do I render this and return it as a string?
# Obviously not the following, but that is the idea:
# html = render :template => uri, :layout => false
# return html
end
I hope my intent is clear...
Thanks!
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.