2017-10-10 71 views
0

我正在提出一個測驗類型的應用程序,並創建了提交答案的表單。它一切正常,question_id和user_id被提交到數據庫,但內容永遠不會通過。它始終顯示爲零。我99%肯定,問題是我的形式,所以在這裏它是:單選按鈕不提交數據

<%= form_for @respond do |f| %> 
    <%= f.text_field :question_id, value: @q.id, :style => "position:absolute;left:3000px;" %> 
    <%= f.text_field :user_id, value: current_user.id, :style => "position:absolute;left:3000px;" %> 
     <% for @ans in Answer.all.where('question_id = ?', @q.id) %> 
      <%= f.radio_button :content, @ans.content, :type => "radio", :name => "radios", :id => "radio#{@ans.id}"%> 
      <label for="radio<%= @ans.id %>" class="btn-lg btn-secondary" style="width:100%;background-color:#eaeaea;margin-bottom:20px"><%= @ans.content %></label> 
     <% end %> 
     <div class="actions"> 
     <%= f.submit "Submit", :class => "btn-lg btn-primary", :style => "width:100%;margin-top:20px;margin-bottom:20px;" %> 
    </div> 
    <% end %> 

我可能只是失去了一些東西的少年,但它是超越我在這一點上。任何幫助,將不勝感激!

+1

你指定一個'你的單選按鈕value'屬性? –

+0

您可以在提交表單後粘貼終端的輸出嗎? – Andy

+0

您是否將此參數添加到強參數中? – Morris

回答

0

原因是你已經從content改變單選按鈕的名稱radios 因此,如果您正在尋找params[:respond][:content]會造成對nil,在這裏你需要搜索params[:respond][:radios]

但是,如果你使用強參數,你的field_name也是內容,那麼我建議你不要指定單選按鈕的名稱。

<%= f.radio_button :content, @ans.content, :type => "radio", :id =>"radio#{@ans.id}"%> 

它會自動單選按鈕的名稱爲content你可以看到它在瀏覽器中檢查元素

感謝

+0

完美!我非常感謝你的幫助,解釋是有道理的。謝謝! –