在我的应用中,当用户访问finances/trends/2014/03
时,我的trends_controller
@expenses = Expense.select("name, amount, id, created_at").where(:user_id => current_user.id).where(["strftime('%Y', created_at) = ? AND strftime('%m', created_at) = ?", params[:year], params[:month] ])
@expenses_by_month = @expenses.group_by { |expense| expense.created_at.beginning_of_month }
如果查询返回结果,则呈现页面,否则会发生重定向。这一切似乎都很好。
当我尝试将params[:month]
传递到索引页面上的链接时出现问题,并且:month中的前导零似乎被剥离,因此链接将返回{{1而不是select语句所需的finances/trends/2014/3
(因为在db中,created_at值存储为2014-03天,当然)。
路线:
finances/trends/2014/03
index.html.erb:
get "finances/trends/:year/:month" => "trends#month", :as => :month_trends
我知道select语句中的%m应该将月份作为填充值返回,所以我根本不确定导致这个的原因。
答案 0 :(得分:0)
尝试一些直接的ruby方式,如果可行的话。这是如何
"3".rjust(2,"0") #=> 03
"3".ljust(2,"0") #=> 30
month=3
month.to_s.rjust(2,"0") #=> 03