我在rails应用程序中有一个listing_controller以及一个Listing模型。 数据库由列表组成,每个列表都有名称,纬度,经度等。
我的listing_controller中有一个方法,在调用时应该向调用者返回一个JSON对象。
JSON对象应该从相应的列表模型中获取其数据。但是,我希望JSON对象只包含每个列表的名称,纬度,经度而不包含模型的其他属性。我该如何限制?
现在,当方法返回JSON对象时,它包含每个列表的所有属性。
以下是当前的实施:
def list
@listings = Listing.order(:name)
render :text=>(@listings).to_json()
结束
答案 0 :(得分:1)
如何替换:
@listings = Listing.order(:name)
使用:
@listings = Listing.order(:name).select([:name, :latitude, :longitude])
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以查看active_model_serializers gem。
如果你不想要这一切,你可以手动创建一个哈希:
render :text => {name: @listing.name, lat:@listing.lat, long:@listing.long}.to_json