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。哈希通常是最简单的。你会想要使用 render 而不是 respond_with

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