2011-06-18 15 views
1

私はRailsCastに入ったthis pluginを使用してRuby on Rails Appでカレンダーを作成しています。私は彼らが私に言ったすべてを、ステップバイステップでやっています。しかし何らかの理由でカレンダーに何ヶ月もスキップする問題があります。誰も私がこのエラーを解決するのを助けることができますか?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

チェック用

<%= link_to "<", :month => (@date.beginning_of_month-1).strftime("%Y-%m-%d") %> 

paramsは[「START_DATE」]はそうコントローラのアクション – Cekaleek

答えて

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)> 

だから、日付の解析方法は、あなたの形式では動作しないことを私のために見えます。ビューでは、parseメソッドで理解できる別の形式を使用する必要があります。ビューコードで例えば

使用:あなたのフォーマットとして(ならびに

<%= link_to ">", ... %> 
+0

に設定されている場合私は何をする必要がありますか? – user804968

+0

ここと同じ...私は何を変える必要がありますか?同じプロブラム.. – gal