2016-04-20 8 views
1

私はform_forの中にあるrange_fieldを持っています。コントローラとデータベースに必要な値を正しく渡す方法がわかりません。form_forの1つまたは複数のrange_fieldの正しい書式

私が見つけることができるrange_fieldについての情報はあまりないようです。 Thisは私が見つけることができる似たような唯一の質問でした。

range_field(object_nameの、方法、オプション= {})公共

私は、[次へ]をクリックしたときに、それは新しいvas_answerで:value, :food_id, :user_id, :vas_question_idを保存したいです。これを行うにはhidden_​​fieldを利用する必要がありますか?

各ページに1-3つの質問があります。 配列として保存するか、3つの別々の回答として保存する方が良いでしょうか?私の現在のビューから

関連するコードカット:

<%= form_for @answer do |answer| %> 
    <% @foods.each do |food| %>  # there could be 1, 2, or 3 foods 
    <h4 class="col-md-offset-1 col-md-10" style="font-size: 16px; line-height: 1.6em; clear: both;"><%= @question.prompt_left %> <strong><%= food.name %></strong> <%= @question.prompt_right %></h4> 

    <%= range_field :vas_answers, :value, min: 1, max: 500, step: 1, class: 'not-clicked', :food_id => food.id, :user_id => current_user.id, :vas_question_id => @question.order %> 

    # I saw :user_id => user.id on another question so I tried it, but I don't know what it is really doing 

    <% end %> 
    <%= answer.submit 'Next', :class => 'col-md-offset-9 btn btn-primary btn-surv' %> 
<% end %> 

コントローラー:

class VasAnswersController < ApplicationController 
    before_filter :authenticate_user! 

    def create 
    @answer = VasAnswer.new(answer_params[:vas_answers]) 
    @q_num = params[:order]  # determine order of questions (not really relevant) 
    @q_num = @q_num.to_i + 1 
    respond_to do |format| 
     if @answer.save 
     if @q_num < 25 
      format.html { redirect_to vas_questions_url(@q_num) } 
     else 
      format.html { redirect_to demographics_path} 
     end 
     end 
    end 
    end 

private 
    def answer_params 
     params.require(:vas_answers).permit(:value, :user_id, :vas_question_id, :food_id) 
    end 
end 

ルート:

post "vas_questions/:order" => "vas_answers#create", as: :vas_answers 

答えて

2

は、私はあなたのアプローチで少し混乱するかもしれないと思います。各行を辿って失敗を説明するのではなく、おそらく、フォームとネストされたフォームを含む別のアプローチを使用することをお勧めします。トピックのキャストのRailsをチェックアウト:

http://railscasts.com/episodes/196-nested-model-form-part-1

それは古い話題だが、それはあなたが少しをまっすぐフォーム構造を得るのを助ける必要があります。彼は、件名に更新キャストを持っていますが、あなたはそれを見るためにメンバーである必要があります:

http://railscasts.com/episodes/196-nested-model-form-revised

私はそのパターンに再構築フォームを言う、との質問の別のセットに戻ってくるでしょう。最も簡単な構造のフォームから始めて、それを動作させてから複雑にする。

希望に役立ちます。

更新:Redditであなたの投稿を見ました。あなたがチコ州の学生であると思われるという事実は、人々が「あなたの宿題をやりたい」ことを望んでいるのを妨げているかもしれません。私はあなたのために問題を解決するのではなく、あなたがRailsの方法を学ぶ方法で答えようとしました。

関連する問題