return while rendering partial collections
Ruby's next
keyword only works in the context of a loop or enumerator method.
So if you're rendering a collection of objects using Rails render partial: collection
, how do you skip to the next item?
Since partials are compiled into methods in a dynamically generated view class, you can simulate next
by using an explicit return
statement. It will short-circuit the rendering of your partial template and iteration will continue with the next element of the collection.
For example
# app/views/users/_user.haml
- return if user.disabled?
%li[user]
rest of your template...