0

我的 rails 应用程序中有一个 Listings_controller 和一个列表模型。数据库由列表组成,每个列表都有名称、纬度、经度等。

我的listing_controller 中有一个方法,在调用时应该将JSON 对象返回给调用者。

JSON 对象应该从相应的列表模型中获取其数据。但是,我希望 JSON 对象仅包含每个列表的名称、纬度、经度,而不包含模型的其他属性。我该如何限制这个?

现在,当该方法返回一个 JSON 对象时,它包含每个列表的所有属性。

这是当前的实现:

def list  
@listings = Listing.order(:name)  
render :text=>(@listings).to_json()  

结尾

4

3 回答 3

1

如何更换:

@listings = Listing.order(:name)  

和:

@listings = Listing.order(:name).select([:name, :latitude, :longitude])
于 2012-04-18T20:10:03.003 回答
0

我建议看一下rabl gem。它是一个模板系统,可以轻松灵活地生成 json(以及其他内容)。

还有一个免费的railscast

于 2012-04-18T19:44:51.213 回答
0

您可以查看active_model_serializers gem。

如果你不想要所有这些,你可以手动创建一个哈希:

render :text => {name: @listing.name, lat:@listing.lat, long:@listing.long}.to_json
于 2012-04-18T19:49:09.480 回答