2017-06-12 6 views
1

現在、他のユーザーからの要求を受け入れる/拒否するユーザーがいるRailsのアプリケーションで作業しています。私はデータベース内にブール値を持っています。t.boolean :accepted, :default => falseにはデフォルト値falseがあります。ユーザーが「受け入れる」ボタンをクリックすると値の変更をtrueにしようとしています。ボタンをクリックするとデータベースからのデフォルトのfalseブール値を変更できるようにする

POST/PATCHリクエストを行うフォームを作成する必要がありますが、その値を変更する方法がわかりません。

+0

acceptメソッドを持ってこの質問はに広すぎます完全な答えを得る。これまでに何を試しましたか? – Gerry

+0

通常、 'model.accepted = true'と同じく' model.save'と同じくらい簡単です。ここで 'model'はこのレコードのインスタンスです。 – tadman

答えて

2

私は、POST/PATCHの リクエストを行うフォームを作成する必要があると知っていますが、その値を変更する方法は不明です。

フォームはここには必要ありません。ボタンのクリックでモデルインスタンスを更新しようとしているだけなので、link_toにはrouteが必要です。このアクションを実行するために定義されています。あなたのモデルを考えるとrequestを更新する必要がインスタンスある

<%= link_to "Accept", accept_request_path(request) %>

を動作するはずです以下、Requestです。

#routes.rb 
patch /requests/:id/accept, to: requests#accept, as: :accept_request 

か、機知ルートをしたい場合、あなたは

resources :requests do 
    patch 'accept', on: :member 
end 

そしてrequests_controllerに行うことができますが、コードの下

def accept 
    @request = Request.find(params[:id]) 
    @request.update_attribute(accepted: true) 
end 
+1

ありがとうございます!それは物事をクリアした。 – CarlosG90

関連する問題