Nope, I think the current way of doing things is just fine.


On 20/12/2011, at 9:51, Rodrigo Rosenfeld Rosas <[email protected]> wrote:

> From a web application point of view, you're usually done after you deliver 
> some content to the client, which in Rails means a render or redirect call 
> usually.
> 
> For 99.99% of the cases, there'll be a return following a render or redirect 
> inside some "if".
> 
> Some might prefer something like
> 
> (render login_url; return) unless authenticated?
> 
> Others will prefer something more verbose like
> 
> unless authenticated?
>    render login_url
>    return
> end
> 
> Others will rely on some undocumented feature of render that might change any 
> time:
> 
> render login_url and return unless authenticated?
> 
> render (or redirect_to) is not guaranteed to return a truthy value, specially 
> because it really doesn't make any sense for the returning result to have any 
> meaning.
> 
> So, I'm suggesting that Rails could support some automatic "return" after 
> each call to render or redirect_to, by calling the method inside a 
> catch-throw block.
> 
> For example:
> 
> class Dispatcher
>    def dispatch(controller, action)
>        catch :redirected_or_rendered do
>            controller.send action
>        end
>    end
> end
> 
> class AbstractController
>    def render(*args) # or redirect_to
>        do_render(*args)
>        throw :redirected_or_rendered
>    end
> end
> 
> Maybe new method names like render_and_return and redirect_and_return could 
> be added for backward compatibility, although I would really prefer to use 
> render and redirect_to with this behavior built-in.
> 
> Maybe we could add some option like 
> "Rails.application.config.automatic_return_from_render_or_redirect = true".
> 
> Is there any interest on adding such behavior to Rails?
> 
> Cheers,
> 
> Rodrigo.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Core" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-core?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to