Split ActiveRecord results based on a condition!
I have this partial which will render the Articles, but I want to render them on a new division based on the month they are created, and display the month in a header.
Something like this:
Sorting the results based on date will not help that much since I have to still iterate through the entire array yada yada, check the month, include some variables and conditions...too hairy for me.
After messing around with the Ruby API, I found out that I could just do this:
module SomeHelper
def group_by_month
@articles = @articles.chunk{|i|i.created_at.strftime("%B, %Y") || nil }
end
end
This will return an enumerator which you can do this to render the partial:
- group_by_month.each do |a|
= render "articles", :a => a
Then on the partial, just read the correct parts of the returned array by:
h4
= a[0]
- a[1].each_with_index do |a, index|
=# do stuff with your article!
Have fun with chunk :)
Written by yaojie
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Ruby
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#