0

たくさんの写真があるサイトを作成しており、各写真の下に「賛成」というボタンがあります。データベース内のフィールドを更新する PUT リクエストを送信するボタンが必要です。私は現在、このコードを持っています:

<% @users.each do |user| %>
    <%= image_tag user.avatar.url(:thumb) %>
    <% form_for (@user) do |f| %>
    <input name="commit" type="submit" value="Upvote">
    <% end %>
<% end %>

ユーザーが賛成票ボタンをクリックすると、PUT リクエストが呼び出され、値が更新され、同じページにリダイレクトされます。これを行う方法がわかりません。

4

2 に答える 2

0

ユーザー(写真ではなく?)に賛成票を投じたい場合は、これを user_controller.rb ファイルに入れます。

def upvote
  @user = User.find(params[:user])
  @user.upvote
end

app/models/user.rb で

def upvote
  self.votes += 1
  self.save
end

config/routes.rb で

resources :user do
  put :upvote
end

テストされていませんが、出発点を提供する必要があります。

于 2012-05-23T19:50:06.210 に答える
0

最初にあなたのコードが間違っています: に置き換えform_for(@user)てくださいform_for(user)

次に、userオブジェクトが既に存在するため、デフォルトで になりますPUT。だからあなたは何もする必要はありません。

于 2012-05-23T19:48:40.733 に答える