Ruby on Rails 获得错误的参数数(1 表示 0)



我正在使用与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`

我认为第一行应该是

<% calendar_for @date do |date| %>

该 railscast 已经过修改,并且在新版本中没有使用该table_builder插件。

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

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

first = date.beginning_of_month.beginning_of_week(START_DAY) 

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

beginning_of_month

beginning_of_week

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

相关内容

  • 没有找到相关文章

最新更新