我的控制器动作:
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。我应该如何更新现有评级,而不是添加额外的评级对产品进行评级。