views:

339

answers:

2

Hi all, here's a beginner rails question...

After I do: format.xml { head: ok}

How do I return from the controller endpoint without showing the view? If I drop off the end of the function at this point, I get what I expect, but if I call 'return', I end up in the view (or in my case in a missing view template). I can code up lots of if/else etc., but it would be nice to early out from the function without ending up in a view template.

I've searched around and can't figure out what the obvious answer is to this; it must be straightforward...

+2  A: 

Chris,

You can use "render :nothing => true, :status => :ok" to return without rendering anything, once you have send a render :nothing => true you need to return from the controller, something like this might work. You can swap the head() method call for a render => :nothing followed by a return, the head() method is documented here:

  • api.rubyonrails.org/classes/ActionController/Base.html#M000635

Here's the code that should do it for you...

  • gist.github.com/126367

Ping me if that doesn't properly answer your question, documentation for the render call with some helpful user comments can be found here:

  • apidock.com/rails/ActionController/Base/render

(sorry I couldn't hyperlink the links for you, as a new user stackoverflow won't allow me to post more than one!)

Beaks
A: 

I guess you must be asking for :

render :nothing => true
marcgg