Group posts by month,archive display

if i click on month i want to display only that months blog posts,this
is an existing code which is working fine for few months not for
all,where am i doing wrong ,should i change the code.can any one help me
out.and also i want the month and date to display in reverse ,recent on
top.like

ARCHIVES
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
June 2014
May 2014
.
.

app/blogcontroller.rb

class BlogController < ApplicationController

require 'date'
if (params[:population_categories])
  @blog_posts = BlogPost.live.where(:population_category_ids

=>params[:population_categories]).latest.page(params[:page])
elsif (params[:month])
b_dt = DateTime.strptime(“01/” + params[:month].to_s + “/” +
params[:year] + " 00:00", “%d/%m/%Y %H:%M”)
e_dt = DateTime.strptime(“01/” + (params[:month].to_i+1).to_s +
“/” + params[:year] + " 00:00", “%d/%m/%Y %H:%M”)
else
@blog_posts=BlogPost.live.keyword(params[:keyword]).latest.page(params[:page])
end

app/views/blog/index.html.erb

<div class="right-col">
<h2>ARCHIVES</h2>
<div class='posts_by_month'>

  <ul>
  <% archive_string = "" %>
  <% date_value = "" %>
  <% @posts_by_month.each do |monthname, posts| %>

    <% date_value = (Date::MONTHNAMES[monthname[0..-6].to_i]) + " "
  • (monthname[3…8]) %>
    <% archive_string = “

  • ” + date_value +
  • ” + archive_string %>
    <% end %>
    <%= raw archive_string %>

I have responded to this in the earlier thread where you asked it the
first time.

Colin

Colin L. wrote in post #1168627:

I have responded to this in the earlier thread where you asked it the
first time.

Colin

i am working on the existing code,i am new to ruby on rails ,i am not
understanding this code and how is it working.why is 0…-6 given in
month and 3…8 in year.

<% date_value = (Date::MONTHNAMES[monthname[0…-6].to_i]) + " "

  • (monthname[3…8]) %>
    <% archive_string = “
  • ” + date_value +
  • ” + archive_string %>
    <% end %>
    <%= raw archive_string %>

On 25 February 2015 at 11:01, Sailatha K. [email protected] wrote:

Colin L. wrote in post #1168627:

I have responded to this in the earlier thread where you asked it the
first time.

Colin

i am working on the existing code,i am new to ruby on rails ,i am not
understanding this code and how is it working.why is 0…-6 given in
month and 3…8 in year.

In that case I suggest you take a few days out to work right through a
tutorial on rails, such as railstutorial.org, which is free to use
online. That will give you a basic understanding of rails, and you
will recover the time spent very rapidly.

To answer the question you first need to know what is in monthname, I
suggest first you need to know what is in monthname. If you include
something like
<%= “monthname = #{monthname}” %>
that will display whatever is in monthname. Next look at the docs for
the String (I assume that monthname contains a string) to see what
String[0…-6] and [3…8] do and to check if you
<%= “[monthname[0…-6]” “(monthname[3…8]” %>
for the cases that work and those that don’t it will hopefully give
you some idea.
The docs for Range will tell you what [0…-6] do. Your code does look
a little odd but I don’t know what is in monthname, and the fact that
it sometimes works means there must be some useful code there.

Colin

okay thank you,i will try my best