首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails日历插件:无效日期错误

Rails日历插件:无效日期错误
EN

Stack Overflow用户
提问于 2011-06-18 11:19:12
回答 1查看 373关注 0票数 1

我正在我的Rails应用程序中创建一个日历,使用我在RailsCasts中获得的RailsCasts。我在做他们让我做的事,一步一步地做。然而,出于某种原因,我在日历上遇到了跳过几个月的问题。有人能帮我解决这个错误吗?

控制器:

代码语言:javascript
复制
 class CalendarController < ApplicationController
  def index
    @statuses = Status.all
    @date = params[:month] ? Date.parse(params[:month]) : Date.today
  end
end

视图:

代码语言:javascript
复制
<%= 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") %>

错误:

无效的日期应用程序/控制器/日历_控制员.in:4:in‘`index’

EN

回答 1

Stack Overflow用户

发布于 2011-06-18 11:42:35

我使用了一些您的代码(在IRB中),得到了以下内容:

代码语言:javascript
复制
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)>

因此,它找我的日期的解析方法不适用于您的格式。您应该在视图中使用另一种格式,这是由解析方法理解的。

例如,在视图代码中使用:

代码语言:javascript
复制
 <%= link_to "<", :month => (@date.beginning_of_month-1).strftime("%Y-%m-%d") %>

作为您的格式(以及

代码语言:javascript
复制
 <%= link_to ">", ... %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6395606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档