我正在创建一个对象:
artist = Artist.create(:name => "Jbeebs",
:genre => "bestmusicever",
:plays => "toomany")
我希望变量artist
仅包含name
和genre
属性,因此我可以返回artist.name
和artist.genre
,但不能返回任何其他内容。< / p>
是否有类似于创造的东西?
我有一系列艺术家,并希望在输出JSON时只返回每个艺术家的名称和类型。
答案 0 :(得分:2)
您可以通过重载to_json
Artist
方法来执行此操作
def to_json(options = {})
{ name: name, genre: genre }.to_json(options)
end
将方法强制转换为JSON时,它将显示为不包含:plays
的JSON对象。
答案 1 :(得分:0)
当您输出json时,只需解析您的艺术家并创建一个新对象以转换为json:
json_array = []
artists.collect{|artist| json_array << {name: artist.name, genre: artist.genre}}
json_array.to_json
否则,如果您总是希望艺术家在json中输出这两个属性,请使用Deefour的答案。