投稿にすべての評価の合計を加算しようとしています。しかし、エラーが発生しています:ArithmeticError: bad argument in arithmetic expression
。 Post
にはすべてratings
が関連付けられているわけではないため、それは信じています。そして、それらの存在しない評価の値をsum
にすることはできません。関連する列で合計を使用した場合の算術エラー
データベースにpost
と関連付けられたratings
がない場合、評価を0
に設定するにはどうすればよいですか?
問合せ:
from post in Post,
left_join: rating in assoc(post, :ratings),
group_by: post.id,
select: %{post | rating: sum(rating.value)}
スキーマ:
schema "posts" do
field :rating, :integer, virtual: true
has_many :ratings, MyApp.Rating
end
schema "ratings" do
field :value, :integer
belongs_to :post, MyApp.Post
end