ruby-on-rails - Ruby on Rails - 为多个模型渲染 JSON

标签 ruby-on-rails json ruby-on-rails-3 render

我正在尝试以 JSON 格式呈现多个模型的结果。我的 Controller 中的以下代码仅呈现第一个结果集:

  def calculate_quote
    @moulding = Moulding.find(params[:id])
    @material_costs = MaterialCost.all

    respond_to do |format|
      format.json  { render :json => @moulding }
      format.json  { render :json => @material_costs }
    end
  end

任何帮助将不胜感激,谢谢。

最佳答案

您可以这样做的一种方法是使用要渲染的对象创建一个散列,然后将其传递给渲染方法。像这样:

respond_to do |format|
  format.json  { render :json => {:moulding => @moulding, 
                                  :material_costs => @material_costs }}
end

如果模型不通过事件记录关联,那可能是您最好的解决方案。

如果关联确实存在,您可以将 :include 参数传递给渲染调用,如下所示:

respond_to do |format|
  format.json  { render :json => @moulding.to_json(:include => [:material_costs])}
end

请注意,如果您采用这种方法,则不必在上面的部分中检索 @material_costs 变量,Rails 会自动从 @moulding 变量中加载它.

关于ruby-on-rails - Ruby on Rails - 为多个模型渲染 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4318962/

相关文章:

ruby-on-rails - Rails - 具有多个模型的acts_as_list

ruby-on-rails - 定义变量时简化 Ruby 控制流

javascript - 如何以非 Ajax 方式使用 jQuery(或 Javascript)从 API 调用中获取 JSON 结果?

ruby-on-rails - 通过 CRON 清除缓存后权限错误

ruby-on-rails - 在 Rails 中的 ERB 中实现 if/not 的最干净的方法是什么?

ruby-on-rails - 将类添加到 link_to block

ruby-on-rails - 在哪里可以找到 ActiveRecord_Relation 的 `present?` 方法的文档

ruby-on-rails - Ruby on rails : Select options menu with default value attribute

javascript - 如何从 Rest API 获取 JSON 数据

java - java中XML到JSON的转换