Tout d'abord, je n'utilise pas Rails. J'utilise Sinatra pour ce projet avec Active Record.Enregistrement actif to_json as_json sur la matrice de modèles
Je souhaite pouvoir remplacer to_json ou as_json sur ma classe Model et lui demander de définir certaines options par défaut. Par exemple, j'ai ce qui suit:
class Vendor < ActiveRecord::Base
def to_json(options = {})
if options.empty?
super :only => [:id, :name]
else
super options
end
end
end
où le fournisseur a plus d'attributs que juste ID et nom. Dans ma route, j'ai quelque chose comme ce qui suit:
@vendors = Vendor.where({})
@vendors.to_json
Ici @vendors
est un fournisseur d'objets Array (évidemment). Le fichier json renvoyé n'appelle cependant pas ma méthode to_json
et renvoie tous les attributs de modèle.
Je n'ai pas vraiment la possibilité de modifier la route car j'utilise en fait une gemme sinatra-repos modifiée (http://github.com/mikeycgto/sinatra-rest).
Des idées sur la façon d'obtenir cette fonctionnalité? Je pouvais faire quelque chose comme ce qui suit dans mon sinatra repos petit bijou, mais cela semble stupide:
@PLURAL.collect! { |obj| obj.to_json }
exactement ce dont j'ai besoin. J'aime le fait que je pourrais aussi ajouter des propriétés qui ne sont pas des attributs. Merci beaucoup! – mikeycgto