簡體   English   中英

Rails 3.0.0和Ruby 1.8.7是否有問題? 零星的“參數數量錯誤”錯誤

[英]Problem with Rails 3.0.0 and Ruby 1.8.7? Sporadic 'wrong number of arguments' error

我在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)):
app / controllers / users_controller.rb:80:in create'
app/controllers/users_controller.rb:77:in
create'
app/controllers/users_controller.rb:77:in
create'
app/controllers/users_controller.rb:77:in
create'

我重新格式化了代碼,以render :xml調用位於render :xml的一行,只是為了確認這是問題的根源。

這是怎么回事? 涉及三個參數(不是1),並且既然渲染何時需要零參數? 為什么僅在將代碼恢復為原始狀態后才出現錯誤?

原來錯誤沒有被正確報告。 我的Users::to_xml方法中出現錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM