1

我正在使用与 Railscast 213 类似的代码来显示带有记录的日历。

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`
4

2 回答 2

0

我认为第一行应该是

<% calendar_for @date do |date| %>

该 railscast 已被修订,并且在新版本中不使用该 table_builder 插件。

http://railscasts.com/episodes/213-calendars-revised

于 2012-12-10T21:41:14.527 回答
0

我在关于这个 Railscast 的讨论中发现,声明:

first = date.beginning_of_month.beginning_of_week(START_DAY) 

给出相同的论点错误。看来方法

beginning_of_month

beginning_of_week

是 Rails 3.2 特定的,如果您使用的是较低版本,则应该升级。

于 2012-12-11T17:35:17.410 回答