2016-08-23 15 views
0

我對帶有15個複選框的表單有疑問。我想採取所有「檢查」的項目,並將標籤結合到輸入到我的數據庫的字符串。我寧願不爲每個複選框都創建一個單獨的數據庫條目,並且在此字段上選擇個人並不重要,我只需要記錄響應。Rails 4 + HTML:結合表單響應以生成1個字符串條目

有沒有簡單的方法來結合這些,並使價值輸入數據庫?

以下顯示正確,但我不確定如何實際提交正確的信息。

HTML

<div class="form-inline"> 
    <div class="form-group col-sm-12" style="margin-bottom: 10px"> 
     <div class="field"> 
      <div class="input check_boxes optional remote_issues"> 
       <label style="display:block; padding-bottom: 1em" class="check_boxes optional">Which of the following pevent you from reaching your desired weight?</label> 

       <% boxes = ["Lack of Knowledge", "Physical Limitations", "Lack of Social Support", "Hunger", "Cravings", "Frequent Travel", "Social Events", "No Time", "Erratic schedule", "Finances", "Family Habits", "Stress", "Hormonal Issues", "Medications", "Illness", "Poor Sleep", "Health Conditions", "Age", "Slow Metabolism", "Alcohol", "No Exercise", "Emotional Eating", "Food Preferences", "Other"] %> 

       <% boxes.each do |box| %> 
        <%= render "health_intake", name: box %> 
       <% end %> 
      </div> 
     </div> 
    </div> 
</div> 

_health_intake部分

<span class="checkbox col-xs-3"> 
    <label for="remote_issues_lack_of_knowledge"> 
     <input type="checkbox" value=#{<%= name %>} name="remote[issues][]" class="check_boxes optional" style="margin-right:1em"><%= name %> 
    </label> 
</span> 

回答

1

剛剛加入該參數數組控制器的值:

values = params[:issues].join 

此外,增加一個C OMMA或東西的連接方法,以便以後可以將它們分割:

values = params[:issues].join(',') 
0

您存儲「缺乏知識」你可以有一個問題,模型等,然後聯接模型FooIssue(假設foo是模型你的表格)。

FooIssue belongs_to:foo和belongs_to:問題。 Foo has_many:foo_issues和has_many:問題,通過:: foo_issues。 Foo accep_nested_attributes_for:foo_issues。

在您的表單中,您將所有問題顯示爲複選框。被檢查的問題會作爲嵌套的foo_issues屬性傳遞迴Foo。

用這種方法,而不是一個序列化的方法 - 我認爲這是你要去的地方 - 你可以得到更好的圍繞問題的統計數據。 「有多少人說'經常旅行'是一個問題?」像這樣的東西。