私のコントローラーアクション:
def updating_rating
input = params[:recommendation_ratings].values
input.each do |mini_params|
rating_id = mini_params[:rating_id].to_i
recommendation_id = mini_params[:recommendation_id].to_i
puts rating_id
puts recommendation_id
rr = RecommendationRating.find_or_create_by_rating_id_and_recommendation_id(rating_id, recommendation_id)
rr.update_attributes(:rating_id => rating_id, :recommendation_id => recommendation_id )
end
redirect_to :back, :flash => { :notice => "Rating Submitted." }
end
ビューの form_tag からパラメーターを渡しています。コードは新しい関係を作成するときに期待どおりに機能しますが、値を更新してフォームを再送信しようとすると、既存の評価が更新されるのではなく、新しい評価が追加されます。
たとえば、評価が 1 の製品があり、評価を 2 に変更してフォームを再送信すると、その製品の評価は 1 と 2 になります。製品への評価。