0

私はモデルを持っていますGuestOrder, OrderBatch, OrderItem

# == Schema Information
#
# Table name: guest_orders
#
#  id             :integer         not null, primary key
#  notes          :string(255)
#  adults         :integer
#  children       :integer
#  created        :datetime
#  placed         :datetime
#  billed         :datetime
#  created_at     :datetime
#  updated_at     :datetime
#

class GuestOrder < ActiveRecord::Base
  has_many :order_batches, :dependent => :destroy
end

# == Schema Information
#
# Table name: order_batches
#
#  id             :integer         not null, primary key
#  placed         :datetime
#  guest_order_id :integer
#  created_at     :datetime
#  updated_at     :datetime
#

class OrderBatch < ActiveRecord::Base
  belongs_to :guest_order
  has_many :order_items, :dependent => :destroy
end

# == Schema Information
#
# Table name: order_items
#
#  id             :integer         not null, primary key
#  quantity       :integer
#  accepted       :datetime
#  cooking        :datetime
#  ready          :datetime
#  delivered      :datetime
#  cancelled      :datetime
#  order_batch_id :integer
#  dish_id        :integer
#  created_at     :datetime
#  updated_at     :datetime
#

class OrderItem < ActiveRecord::Base
  belongs_to :order_batch
  belongs_to :dish
end

次のメソッドで json をレンダリングして、guest_order id をパラメーターとして渡すことにより、guest_order とそれに属する order_batches および order_items を取得しようとしています。

    def getOrderDetails
        #To get the details of a particular guest_order and its batches and items
        @guest_order = GuestOrder.find_by_id(params[:id])
        render :json => @guest_order.to_json(:except => [:created_at, :updated_at], 
:includes => {:order_batches => {:except => [:guest_order_id, :created_at, :updated_at],
:includes => {:order_items => {:except => [:order_batch_id, :created_at, :updated_at] } } } } )
    end

しかし、期待どおりの結果が得られませんでした。guest_orders テーブルの詳細のみがレンダリングされます。これを解決するには?

4

1 に答える 1

1

:includes ではなく :include を使用していますが、それが重要かどうかはわかりません。

最初に :except なしで :include を使用してみてください。それが機能するようになったら、:except を追加してください。

于 2012-04-07T08:41:16.677 に答える