0

update我已经为一个控制器的功能编写了一个规范文件。我正在使用ruby-1.9.3 p194,Rails 3.2.13rspec 2.13.1. data mapper version ~> 1.2.0'update在我的规范中调用函数如下:

put :update, :id=>@xyz.id, :xyz=> {key1:val1, key2:val2}

在我的xyz控制器的更新功能中,我访问id如下:

def update
 params[:xyz][:id] = params[:id]  #This line is working fine and params[:id] is not nil
 params = params[:xyz]
 id = params[:id]               
end

问题是,当我一次运行同一个文件而没有任何更改时,它给出了两个不同的错误。一旦它给出以下错误:

/home/joy/.rvm/gems/ruby-1.9.3-p194@packageName/gems/dm-core-1.2.0/lib/dm-           
 core/collection.rb:1302: in resource undefined method 'saved?' for nil:NilClass 
(NoMethodError) 
....

下一次,在运行时,它会给出以下错误:

NoMethodError:
  undefined_method 'id' for "57":string"
# ./app/controllers/xyz_controller.rb : in line number 3 of update where I am setting the id is giving error.

这种情况是我使用的 ruby​​ 版本或 rspec 或 data-mapper 版本不稳定,还是有任何其他我无法弄清楚的问题。请帮忙。

4

0 回答 0