Rails 3.0.0和Ruby 1.8.7的问题?零星的“错误的参数数量”错误

时间:2010-09-06 11:40:14

标签: ruby-on-rails ruby

我在Snow Leopard上使用Rails 3.0.0.rc和Ruby 1.8.7。我使用Builder来限制render :xml为User模型对象返回的内容。它没有按预期工作,所以我注释掉了format.xml块。

例如,这是我的users_controller.rb:

  def create
    # TODO: Limit the frequency at which this can be called.
    @user = User.new
    @user.first_name = params[:user][:first_name]
    @user.last_name = params[:user][:last_name]
    # etc...

    respond_to do |format|
      if @user.save
        format.html { redirect_to(@user, :notice => 'User was successfully created.') }
        format.xml  { render :xml => @user, :status => :created, :location => @user }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @user.errors, :status => :unprocessable_entity }
      end
    end
  end

我更改了第一个format.xml并注释了该块:

format.xml # { render :xml => @user, :status => :created, :location => @user }

当我删除评论并重新引入该块时,我收到错误:

  

ArgumentError(错误的数字   参数(1代表0)):
  应用程序/控制器/ users_controller.rb:80:在   create'
app/controllers/users_controller.rb:77:in
创建'

我重新格式化了代码,因此render :xml调用是独立的,只是为了确认这是问题的根源。

发生了什么事?涉及三个参数(不是1),因为render何时采用零参数?为什么只有在我将代码恢复到原始状态后才出现错误?

1 个答案:

答案 0 :(得分:0)

原来没有正确报告错误。我的Users::to_xml方法出错了。