Je travaille sur une application rails3 et je suis un peu confondu avec Active Model. Voici mon modèle:ActiveModel :: définition des attributs de nommage
class MyClass
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :foo, :foo1, foo2
def initialize(attributes = {})
attributes.each { |key, value| send "#{key}=", value }
end
def self.all
get_elig
end
private
def self.get_elig
# My function
end
end
La fonction get_elig
retourner un Hash comme celui-ci: {"foo1"=>"bar1", "foo2"=>"bar2", "foo"=>"bar"}
Sous la console rails:
irb(main):031:0> t = MyClass.all
=> {"foo1"=>"bar1", "foo2"=>"bar2", "foo"=>"bar"}
irb(main):032:0> t.foo
NoMethodError: undefined method `foo' for #<Hash:0x105e96be0>
Ma question est simple: ce qui se passait mal avec mon modele ?
Merci pour votre aide.
Non exactly.MyClass.all appeler un api SOAP et retourne un hachage de l'objet. Ce que je voulais faire était de convertir hash [key] en hash.key. Après avoir fait cela avec ma propre méthode, j'ai utilisé la gemme Hashie qui m'a sauvé la vie. – jjmartres