2016-10-03 10 views
0

私はプロジェクトで作業しており、フィードバックシステムを実装しようとしています。ポジティブ、ニュートラル、ネガティブの3つのボタンがあり、ユーザがボタンをクリックした時点で、より多くのフィードバックを提出するかどうか尋ねられ、新しいフィードバックフォームに移動されます。しかし、私が望むのは、ボタンが押されると、ボタンが押されたモデルセットの評価フィールドにレコードが保存されるということです。ボタンを押したときにモデルレコードを作成する

ユーザーがさらにフィードバックを与えると、そのフィードバックの編集ページに移動します。私は本当にこれをやってどうやって行くのかわからない、ボタンの上にいくつかのjavascriptが必要だろうか?またはレールにこれを行う方法がありますか?

ありがとうございました

+0

あなたはこれまでに何を試みましたか? – spickermann

+0

私は現時点でモデルレコードが作成され、新しいフォームに行くことで保存されたと言ったように、どこから始めたらいいのか分かりません。 – user2320239

答えて

0

非表示フィールドで各ボタンのフォームを作成します。隠しフィールドの値を正、中立、または負に設定します。代わりにここで列挙型を使用してみてください。

<% form_for :feedback, url: feedback_path do |f| %> 
    <%= f.hidden_field :sentiment, value: 'positive' %></td> 
    <%= submit_tag "Positive" %> 
<% end %> 

<% form_for :feedback, url: feedback_path do |f| %> 
    <%= f.hidden_field :sentiment, value: 'neutral' %></td> 
    <%= submit_tag "Neutral" %> 
<% end %> 

<% form_for :feedback, url: feedback_path do |f| %> 
    <%= f.hidden_field :sentiment, value: 'negative' %></td> 
    <%= submit_tag "Negative" %> 
<% end %> 

上記を単純なループに入れてDRYすることができます。

+0

こんにちは、私はこれを試してみると、エラーが表示されます。 {:action => "update"、:controller => "feedbacks"と一致するルートがありません。これは、createメソッドではなくupdateメソッドを呼び出そうとしていることを意味します。 – user2320239

+0

上記はあなたのやり方の例です。詳細については、Railsのドキュメントを参照してください。これは助けになるはずです:http://guides.rubyonrails.org/form_helpers.html#binding-a-form-to-an-object –

関連する問題