¿collect! existe? (en ActiveResource)

Hola,

Estaba probando ActiveResource y me da error al llamar al método
collect! [1] en el método instantiate_collection de
active_resource/base.rb [2] y [3]

El método collect aparece en el módulo Enumerable, pero no collect!, al
menos en Programming Ruby 2ª Ed. Entonces, ¿existe collect! o no?

Por si sirve, estaba llamando a User.find(:all) que llama a
lib/prueba.rb [4]

[1]
undefined method `collect!’ for #Hash:0xb74b8824

[2]
vendor/rails/activeresource/lib/active_resource/base.rb:443:in
`instantiate_collection’

[3]
#El método de active_resource/base.rb es:
def instantiate_collection(collection, prefix_options = {})
collection.collect! { |record| instantiate_record(record,
prefix_options) }
end

[4]
#lib/prueba.rb:
require ‘active_resource’
class UserResource < ActiveResource::Base
self.site = “http://localhost:3000/
end
class User < UserResource
end

http://dev.rubyonrails.org/ticket/8798

El método collect aparece en el módulo Enumerable, pero no collect!, al
menos en Programming Ruby 2ª Ed. Entonces, ¿existe collect! o no?

Preguntale a ruby

irb(main):013:0> [].methods.select {|m| m.match(“collect!”)}
=> [“collect!”]

irb(main):014:0> {}.methods.select {|m| m.match(“collect!”)}
=> []

irb(main):003:0> class A
irb(main):004:1> include Enumerable
irb(main):005:1> end

irb(main):008:0> A.new.methods.select {|m| m.match /coll/}
=> [“collect”]

irb(main):009:0>

Pues parece que hash no lo tiene, y que el module Enumerable tampoco.
Pero
Array si. Misterios de la vida. Por que unas clases tienen tanto y otras
tampoco :stuck_out_tongue:

[1]
undefined method `collect!’ for #Hash:0xb74b8824

Pues eso que Hash no tiene el metodo collect!

Pedro Del G.

Email : [email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs