2012-12-10 82 views
1

我正在使用与Railscast 213类似的代码来显示带记录的日历。Ruby on Rails获取错误的参数数量(1代表0)

DO线是造成“得到错误的参数数目(1 0):

<%= calendar @date do |date| %> 
    <%= date.day %> 
    <% if @wolabors_by_date[date] %> 
     <ul> 
     <% @wolabors_by_date[date].each do |wolabor| %> 
      <li><%= link_to wolabor.name, wolabor %></li> 
     <% end %> 
     </ul> 
    <% end %> 
<% end %> 

的calendar_helper.rb开始时用:

module CalendarHelper 
    def calendar(date = Date.today, &block) 
     Calendar.new(self, date, block).table 
    end 

wolabors_controller.rb有

class WolaborsController <  ApplicationController 
def index 
    @wolabors = Wolabor.all 
    @wolabors_by_date = @wolabors.group_by(&:date) 
    @date = params[:date] ? Date.parse(params[:date]) : Date.today 
end` 
+0

什么行给你错误? – Baconator507

+0

<%= calendar @date do | date | %> – Reddirt

+0

好吧,那么我认为正确的方法是calendar_for – Baconator507

回答

0

我在这个Railscast的讨论中发现,这种说法:

first = date.beginning_of_month.beginning_of_week(START_DAY) 

给出了相同的参数错误。这似乎方法

beginning_of_month 

beginning_of_week 

是Rails的3.2具体的,如果你是在较低的版本,应该升级。

相关问题