ヘルパーの1つに、ページのボタンがクリックされたときに実行したいメソッドがあります。問題は、ボタンのあるページが読み込まれるたびに、ボタンをクリックせずにメソッドが実行されることです。
それを止めるために私は何ができますか?私はこの方法を持っています:
private
def add_like(item)
a = current_user.exp + 50
current_user.update_attributes(exp: a)
b = item.likes + 1
item.update_attributes(likes: b)
end
もちろん、いくつかのアイテムのいいねを更新し、ユーザーにポイントを追加するというアイデアです。しかし、それはすべての負荷で正確に発生します。
景色:
<fieldset style="height:200px;overflow:auto;">
<legend><h3>הזמנות אחרונות שלי</h3></legend>
<% current_user.orders.reverse[0..14].each do |o| %>
<%= o.food_item.likes %>
הזמנה - #<%= o.id %><br>
<% food = FoodItem.find(o.food_item) %>
<%= Provider.find(food.provider_id).name %><br>
תאריך הזמנה: <%= o.created_at.strftime("%d/%m/%Y") %><br>
מחיר - <%= o.price %><br>
<%= link_to image_tag("/images/like.jpg",size:"35x35"),"#", onclick: add_like(o.food_item), :method => :put%>
<%= link_to image_tag("/images/feedback.jpg",size:"75x75"),"#" %><br>
<br>
<%= image_tag(FoodItem.find(o.food_item).photo, size:"120x120") %>
<% end %>
</fieldset>
link_toは、終了前の6行にあるものです。