Je ne trouve pas le moyen de récupérer uniquement les champs de modèle nécessaires dans un certain contexte. Disons que j'ai un énorme modèle qui a environ 30 champs (propriétés). Mais dans un but de recherche, je n'ai besoin que de deux d'entre eux.Comment extraire uniquement des champs de modèle spécifiés avec DataMapper?
Exemple:
class Foo
include DataMapper::Resource
property :id, Serial
property :title, String, :length => 256
property :description, Text
property :url, String, :length => 4096
property :city, String, :length => 64
property :country, String, :length => 64
property :state, String, :length => 64
property :created_at, Time
property :updated_at, Time
property :expires_at, Time
... etc fields ...
end
Ainsi, pour la fin avant (application Web) La plupart de ces champs sont utilisés. Mais pour la recherche j'ai besoin de disons seulement: titre,: ville, état. Son facile à interroger des données, comme ça
items = Foo.all(:title.like => 'Some stuff')
Et puis j'ai besoin d'emballer les données récupérées dans JSON. Pour autant que je sache, il existe un module pour DataMapper appelé dm-serialize qui gère toutes ces opérations.
Enfin, je le paquet pour la sortie:
response = {:error => 0, :count => items.length, :data => items}
response.to_json
Mais les éléments de sortie ont tous les champs alors que je dois obtenir seulement certains d'entre eux. Pour une raison quelconque, le chargement paresseux ne fonctionne pas.
La question est: Comment spécifier les champs de modèle que vous allez sélectionner?
merci! Je me demandais comment ne pas forcer la charge paresseuse lorsque vous utilisez to_json – vitorbal