未定义的方法`map!' 对于#<Shop :: ActiveRecord_Relation:0x007ff1d69b4f40>

Fi3*_*n1k 1 rspec ruby-on-rails ruby-on-rails-4

我正在从Rails 3更新到Rails 4.2,当我运行测试套件时,我收到以下错误

 Failure/Error: get 'edit', id: @shops[3].id
 NoMethodError:
   undefined method `map!' for #<Shop::ActiveRecord_Relation:0x007ff1d69b4f40>
Run Code Online (Sandbox Code Playgroud)

控制器中的代码是:

existing_shops.map! { |obj| [["##{obj[:shop_id]} #{obj[:name]},
#{obj[:phone]}, #{obj[:address]}, #{obj[:city]}, #{obj[:state]}, #{obj[:zipcode]} "]]}
Run Code Online (Sandbox Code Playgroud)

我使用的是Rails 4.2.4和RSpec 3.3.0

谢谢

jib*_*iel 9

关系不再有像#map这样的mutator方法!和#delete_if.在使用这些方法之前,通过调用#to_a转换为数组.

existing_shops.to_a.map! { ... }
Run Code Online (Sandbox Code Playgroud)

- 升级Ruby on Rails的指南