我正在使用我在RailsCasts中获得的this plugin在Ruby on Rails应用程序中创建日历。我正在做他们告诉我的一切,一步一步。但是,出于某种原因,我在日历中遇到问题要跳过几个月。有人可以帮我解决这个错误吗?
控制器:
class CalendarController < ApplicationController
def index
@statuses = Status.all
@date = params[:month] ? Date.parse(params[:month]) : Date.today
end
end
查看:
<%= link_to "<", :month => (@date.beginning_of_month-1).strftime("%Y-%m") %>
<%=h @date.strftime("%B %Y") %>
<%= link_to ">", :month => (@date.end_of_month+1).strftime("%Y-%m") %>
错误:
invalid date app/controllers/calendar_controller.rb:4:in `index'
答案 0 :(得分:0)
我已经使用了你的代码(IRB内部),并获得了以下内容:
irb(main):002:0> require 'date'
=> true
irb(main):003:0> Date.today
=> #<Date: 2011-06-18 (4911461/2,0,2299161)>
irb(main):004:0> Date.parse('2011-09')
ArgumentError: invalid date
from C:/apps/ruby/ruby192/lib/ruby/1.9.1/date.rb:1022:in `new_by_frags'
from C:/apps/ruby/ruby192/lib/ruby/1.9.1/date.rb:1066:in `parse'
from (irb):4
from C:/apps/ruby/ruby192/bin/irb:12:in `<main>'
irb(main):005:0> Date.parse('2011-Jan')
=> #<Date: 2011-01-01 (4911125/2,0,2299161)>
irb(main):006:0> Date.today.strftime("%Y-%m")
=> "2011-06"
irb(main):007:0> Date.parse('2011-01-26')
=> #<Date: 2011-01-26 (4911175/2,0,2299161)>
因此,我认为日期的解析方法不适用于您的格式。您应该在视图中使用另一种格式,这可以通过解析方法理解。
例如在视图代码中使用:
<%= link_to "<", :month => (@date.beginning_of_month-1).strftime("%Y-%m-%d") %>
作为您的格式(以及
<%= link_to ">", ... %>