I have an order model, and Order.all returned below.
[ [0] #<Order:0x007f9d9e236de0> { :id => 15, :user_id => 2, :artist_id => nil, :address_id => 18, :paid_at => nil, :payment_type => "bank", :guid => "c8e22764774adc6825348b8874b581e8", :created_at => Mon, 24 Aug 2015 19:42:09 JST +09:00, :updated_at => Mon, 24 Aug 2015 19:45:38 JST +09:00, :ordered_at => Mon, 24 Aug 2015 19:45:37 JST +09:00, :total => 43890 }, [1] #<Order:0x007f9d9e2367a0> { :id => 12, :user_id => 2, :artist_id => nil, :address_id => 18, :paid_at => nil, :payment_type => "bank", :guid => "274b4a8653395023125a4724139efc09", :created_at => Mon, 24 Aug 2015 19:10:38 JST +09:00, :updated_at => Mon, 24 Aug 2015 19:41:25 JST +09:00, :ordered_at => Mon, 24 Aug 2015 19:41:22 JST +09:00, :total => 48689 }, [2] #<Order:0x007f9d9e236318> { :id => 11, :user_id => 2, :artist_id => nil, :address_id => 14, :paid_at => Mon, 24 Aug 2015 19:10:38 JST +09:00, :payment_type => "credit_card", :guid => "b075f4a6f31c32942152f7d50d2bd098", :created_at => Mon, 24 Aug 2015 19:03:39 JST +09:00, :updated_at => Mon, 24 Aug 2015 19:10:38 JST +09:00, :ordered_at => Mon, 24 Aug 2015 19:10:38 JST +09:00, :total => 5010 }, [3] #<Order:0x007f9d9e235e40> { :id => 10, :user_id => nil, :artist_id => nil, :address_id => nil, :paid_at => nil, :payment_type => nil, :guid => "916ff17977cb176c5e5740faab92a08c", :created_at => Sat, 22 Aug 2015 19:30:38 JST +09:00, :updated_at => Sat, 22 Aug 2015 19:30:38 JST +09:00, :ordered_at => nil, :total => 0 }, [4] #<Order:0x007f9d9e2356c0> { :id => 9, :user_id => 1, :artist_id => nil, :address_id => 9, :paid_at => nil, :payment_type => "bank", :guid => "a4f1dd11ad035d1747a37776b062021f", :created_at => Sat, 22 Aug 2015 19:30:04 JST +09:00, :updated_at => Tue, 01 Sep 2015 00:00:09 JST +09:00, :ordered_at => Sat, 22 Aug 2015 00:00:00 JST +09:00, :total => 5010 }, [5] #<Order:0x007f9d9e2342c0> { :id => 8, :user_id => 1, :artist_id => nil, :address_id => 9, :paid_at => Thu, 20 Aug 2015 19:30:04 JST +09:00, :payment_type => "credit_card", :guid => "b816503b6b95d35455262cd4d8b9e822", :created_at => Sat, 22 Aug 2015 19:30:04 JST +09:00, :updated_at => Sat, 22 Aug 2015 19:30:04 JST +09:00, :ordered_at => Wed, 19 Aug 2015 19:30:04 JST +09:00, :total => 0 }
]
However, Order.sum(:total) returns
Order.sum(:total) (0.4ms) SELECT SUM("orders"."total") FROM "orders" 12000
and Order.pluck(:total) returns
Order.pluck(:total) CACHE (0.0ms) SELECT "orders"."total" FROM "orders" ORDER BY "orders"."created_at" DESC [ [0] nil, [1] nil, [2] nil, [3] nil, [4] 2000, [5] 10000 ]
So what happened? How can I get the correct value?
Thanks a lot of comments.
I have a default scope, but only order,
default_scope { order(created_at: :desc) }
. Does this affect this issue?
This is the query "Order.all".
Order Load (1.0ms) SELECT "orders".* FROM "orders" ORDER BY "orders"."created_at" DESC Item Load (0.4ms) SELECT "items".* FROM "items" WHERE "items"."order_id" = $1 [["order_id", 20]] Flower Load (0.7ms) SELECT "flowers".* FROM "flowers" WHERE "flowers"."type" IS NULL AND "flowers"."item_id" = $1 ORDER BY "flowers"."created_at" ASC LIMIT 1 [["item_id", 8]]
Order.all.map(&:total) returns
[ [ 0] 43890, [ 1] 48689, [ 2] 5010, [ 3] 0, [ 4] 5010, [ 5] 0 ]
sorry for the delay in reply ...
This is my result for orders.html.erb, and I only use the myapp_development and myapp_test databases.
Order.count 6 Order.sum(:total) 12,000 Order.pluck(:total) [nil, nil, 2000, 10000, nil, nil] Order.all.map(&:total) [0, 5010, 0, 0, 16110, 0] #<Order id: 6, user_id: 1, artist_id: nil, address_id: nil, paid_at: nil, payment_type: nil, guid: "a6471c15680a0fbcd3f515a1bdf83566", created_at: "2015-09-02 07:24:37", updated_at: "2015-09-02 07:24:37", ordered_at: nil, total: nil, conveni_name: nil, conveni_code: nil, invoice_id: nil> #<Order id: 5, user_id: 1, artist_id: nil, address_id: 14, paid_at: "2015-09-02 07:24:36", payment_type: 0, guid: "b68989c73bc0af34e3eef56abbcb306c", created_at: "2015-09-01 08:58:07", updated_at: "2015-09-02 07:24:36", ordered_at: "2015-09-02 07:24:36", total: nil, conveni_name: nil, conveni_code: nil, invoice_id: nil> #<Order id: 4, user_id: 1, artist_id: nil, address_id: 1, paid_at: nil, payment_type: 2, guid: "1863cc6f2884b88598c4524d564b8a4a", created_at: "2015-09-01 06:07:52", updated_at: "2015-09-01 06:07:52", ordered_at: "2015-08-31 15:00:00", total: 2000, conveni_name: nil, conveni_code: nil, invoice_id: nil> #<Order id: 3, user_id: 1, artist_id: nil, address_id: 1, paid_at: "2015-08-30 06:07:52", payment_type: 0, guid: "a6f7e22fc9ea8bdccdbdcbb00d9ea250", created_at: "2015-09-01 06:07:52", updated_at: "2015-09-01 06:07:52", ordered_at: "2015-08-29 06:07:52", total: 10000, conveni_name: nil, conveni_code: nil, invoice_id: nil> #<Order id: 2, user_id: 1, artist_id: nil, address_id: 11, paid_at: "2015-09-01 08:58:06", payment_type: 0, guid: "f29dd23315078fce2e5b38e16d027c45", created_at: "2015-09-01 06:06:33", updated_at: "2015-09-01 08:58:06", ordered_at: "2015-09-01 08:58:06", total: nil, conveni_name: nil, conveni_code: nil, invoice_id: nil> #<Order id: 1, user_id: nil, artist_id: nil, address_id: nil, paid_at: nil, payment_type: nil, guid: "6f2ffd0e8ba491fba10d69b73e717384", created_at: "2015-09-01 03:08:44", updated_at: "2015-09-01 03:08:44", ordered_at: nil, total: nil, conveni_name: nil, conveni_code: nil, invoice_id: nil>