0

こんにちは、json としてメソッドを返すカスタム コントローラーを作成しようとしています。

ここに私のコントローラー

respond_to :json
  def rates
    @event = Event.find(params[:id])
    respond_with @event.avg_rating
  end

今、私は次の方法でモデルを持っています

# returns the average rating for that event
def avg_rating
  @avg = self.ratings.average(:stars)     
  @avg ? @avg : 0
end

ただし、応答を取得すると、次のようになります。

3.75

私が望むのは、標準のjson応答のいずれかです{"event": "3.75"}

しかし、そのような答えを作るために単純に変換するために何を使用すればよいかわかりません

4

1 に答える 1

3

json にレンダリングするには、実際のオブジェクトが必要です。通常、ハッシュが最も簡単です。そして、respond_with の代わりに render を使用したいと思うでしょう。

    render json: {:event => @event.avg_rating}
于 2013-09-13T00:34:47.130 に答える