update
我已经为一个控制器的功能编写了一个规范文件。我正在使用ruby-1.9.3 p194
,Rails 3.2.13
和rspec 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 版本不稳定,还是有任何其他我无法弄清楚的问题。请帮忙。