2012-04-18 5 views
0

私はリストモデルと一緒に私のレールアプリにlisting_controllerを持っています。 dbは名前、緯度、経度などのリストで構成されています。RailsメソッドJSONレンダリング

私のlisting_controllerには、呼び出し時にJSONオブジェクトを呼び出し元に返すメソッドがあります。

JSONオブジェクトは、対応するListingsモデルからデータを取得する必要があります。ただし、JSONオブジェクトには、各リスティングの名前、緯度、経度のみを含み、モデルの他の属性は含まないようにします。これをどのように制限できますか?

今のところ、メソッドがJSONオブジェクトを返すとき、メソッドは各リストのすべての属性を含みます。ここで

は、現在の実装である:

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

エンド

答えて

1

どのように置き換えることを約

@listings = Listing.order(:name).select([:name, :latitude, :longitude]) 
+0

これは機能しました。ありがとう。 – banditKing

0

私はrabl宝石を見てお勧めします。これは、json(他のものの中でも)を簡単かつ柔軟に生成するためのテンプレートシステムです。

無料railscastもあります。

0

active_model_serializers gemをチェックアウトできます。

あなたはすべてのことをしたくない場合は、あなただけ手動でハッシュを作成することができます。と

@listings = Listing.order(:name) 

render :text => {name: @listing.name, lat:@listing.lat, long:@listing.long}.to_json 
+0

これのdidnを残念ながら仕事をしていません。 – banditKing

関連する問題