2016-11-07 29 views
0

我是Rails中的新形式,因此這可能是一個非常基本的問題。Rails表格示例

我有一個HTML頁面,我想變成一個基本形式:

<div class="container"> 
    <div class="row"> 
     <div class="col-sm-12"> 
      <h2>What is your age?</h2> 
      <input type="number" id="age"><br> 
     </div> 
     <div class="col-sm-12"> 
      <h2>What is your zip code?</h2> 
      <input type="number" id="zip"><br> 
     </div> 
     <div class="col-sm-12"> 
      <h2>What is your gender?</h2> 
      <select id="gender"> 
       <option></option> 
       <option value="42198">Male</option> 
       <option value="42199">Female</option> 
      </select> 
     </div> 
     <div class="col-sm-12"> 
      <h2>Are you of Hispanic, Latino, or Spanish origin?</h2> 
      <select id="hispanic"> 
       <option></option> 
       <option value="42200">No , not of Hispanic, Latino, or Spanish origin</option> 
       <option value="42201">Yes, Mexican, Mexican American, Chicano</option> 
       <option value="42202">Yes, Cuban</option> 
       <option value="42203">Yes, another Hispanic, Latino, or Spanish origin *** Argentina</option> 
       <option value="42204">Yes, another Hispanic, Latino, or Spanish origin *** Colombia</option> 
       <option value="42205">Yes, another Hispanic, Latino, or Spanish origin *** Ecuador</option> 
       <option value="42206">Yes, another Hispanic, Latino, or Spanish origin *** El Salvadore</option> 
       <option value="42207">Yes, another Hispanic, Latino, or Spanish origin *** Guatemala</option> 
       <option value="42208">Yes, another Hispanic, Latino, or Spanish origin *** Nicaragua</option> 
       <option value="42209">Yes, another Hispanic, Latino, or Spanish origin *** Panama</option> 
       <option value="42210">Yes, another Hispanic, Latino, or Spanish origin *** Peru</option> 
       <option value="42211">Yes, another Hispanic, Latino, or Spanish origin *** Spain</option> 
       <option value="42212">Yes, another Hispanic, Latino, or Spanish origin *** Venezuela</option> 
       <option value="42213">Yes, another Hispanic, Latino, or Spanish origin *** Other Country</option> 
       <option value="42214">Prefer not to answer</option> 
      </select> 
     </div> 
     <div class="col-sm-12"> 
      <h2>What is your race?</h2> 
      <select id="ethnicity"> 
       <option></option> 
       <option value="42215">White</option> 
       <option value="42216">Black, or African American</option> 
       <option value="42217">American Indian or Alaska Native</option> 
       <option value="42218">Asian *** Asian Indian</option> 
       <option value="42219">Asian *** Chinese</option> 
       <option value="42220">Asian *** Filipino</option> 
       <option value="42221">Asian *** Japanese</option> 
       <option value="42222">Asian *** Korean</option> 
       <option value="42223">Asian *** Vietnamese</option> 
       <option value="42224">Asian *** Other</option> 
       <option value="42225">Pacific Islander *** Native Hawaiian</option> 
       <option value="42226">Pacific Islander *** Guamanian</option> 
       <option value="42227">Pacific Islander *** Samoan</option> 
       <option value="42228">Pacific Islander *** Other Pacific Islander</option> 
       <option value="42229">Some other race</option> 
       <option value="42230">Prefer not to answer</option> 
      </select> 
     </div> 
     <div class="col-sm-12"> 
      <h2>What is your relationship status?</h2> 
      <select id="standard_relationship"> 
       <option></option> 
       <option value="42231">Single, never married</option> 
       <option value="42232">Married</option> 
       <option value="42233">Separated, divorced or widowed</option> 
       <option value="42234">Domestic partnership/living with someone</option> 
       <option value="42235">Prefer not to answer</option> 
      </select> 
     </div> 
     <div class="col-sm-12"> 
      <h2>What is the highest level of education you have completed?</h2> 
      <select id="standard_education"> 
       <option></option> 
       <option value="42236">3rd Grade or less</option> 
       <option value="42237">Middle School - Grades 4 - 8</option> 
       <option value="42238">Completed some high school</option> 
       <option value="42239">High school graduate</option> 
       <option value="42240">Other post high school vocational training</option> 
       <option value="42241">Completed some college, but no degree</option> 
       <option value="42242">Associate Degree</option> 
       <option value="42243">College Degree (such as B.A., B.S.)</option> 
       <option value="42244">Completed some graduate, but no degree</option> 
       <option value="42245">Masters degree</option> 
       <option value="42246">Doctorate degree</option> 
       <option value="42247">None of the above</option> 
      </select> 
      <h2>How much total combined income do all members of your household earn before taxes?</h2> 
     </div> 
     <div class="col-sm-12"> 
      <select id="standard_hhi_us"> 
       <option></option> 
       <option value="43490">Less than $5,000</option> 
       <option value="43491">$5,000 to $9,999</option> 
       <option value="43492">$10,000 to $14,999</option> 
       <option value="43493">$15,000 to $19,999</option> 
       <option value="43494">$20,000 to $24,999</option> 
       <option value="43495">$25,000 to $29,999</option> 
       <option value="43496">$30,000 to $34,999</option> 
       <option value="43497">$35,000 to $39,999</option> 
       <option value="43498">$40,000 to $44,999</option> 
       <option value="43499">$45,000 to $49,999</option> 
       <option value="43500">$50,000 to $54,999</option> 
       <option value="43501">$55,000 to $59,999</option> 
       <option value="43502">$60,000 to $64,999</option> 
       <option value="43503">$65,000 to $69,999</option> 
       <option value="43504">$70,000 to $74,999</option> 
       <option value="43505">$75,000 to $79,999</option> 
       <option value="43506">$80,000 to $84,999</option> 
       <option value="43507">$85,000 to $89,999</option> 
       <option value="43508">$90,000 to $94,999</option> 
       <option value="43509">$95,000 to $99,999</option> 
       <option value="43510">$100,000 to $124,999</option> 
       <option value="43511">$125,000 to $149,999</option> 
       <option value="43512">$150,000 to $174,999</option> 
       <option value="43513">$175,000 to $199,999</option> 
       <option value="43514">$200,000 to $249,999</option> 
       <option value="43515">$250,000 and above</option> 
       <option value="43516">Prefer not to answer</option> 
      </select> 
     </div> 
    </div> 
</div> 

基本上上點擊<input type="submit">按鈕,我想提出一個POST

example#post_action

在那個電話中,我想傳遞所有字段的值。

所以#age數值,選擇下拉列表的值,因此#gender可能如果選擇男性有42198值等

什麼是最合適的方式來定義這種類型的一種形式Rails的?因爲這些值不會直接存儲在列中,所以我不能在這裏調用form_for

編輯:

試圖在這裏使用一個form_tag,我得到這樣的迴應,其缺少輸入/下拉菜單被填寫:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"WW9mpi6cdJhlR5nvUFGh95K1PKq1YyexC+SV14+0IAuAd5ZFTqAiOlD1+zFbT2X5RP5uiPiFQlT0VjG9PrOE4g==", "commit"=>"Save"} 
{"utf8"=>"✓", "authenticity_token"=>"WW9mpi6cdJhlR5nvUFGh95K1PKq1YyexC+SV14+0IAuAd5ZFTqAiOlD1+zFbT2X5RP5uiPiFQlT0VjG9PrOE4g==", "commit"=>"Save", "controller"=>"routers", "action"=>"pulley_post"} 

更新代碼:

<%= form_tag('/routers/pulley_post') do -%> 
    #above html code 
    <div><%= submit_tag 'Save' %></div> 
<% end -%> 
+0

爲了補充你的答案應該給你,你可能想引用一個良好的開端[福rm Helpers](http://guides.rubyonrails.org/form_helpers.html) – David

回答

1

可以使用form_for某處使用上application_helper.rb或其他輔助模塊的輔助方法傳遞選項f.select

表單模板:

<%= form_for @user, :url => { :action => "create" } do |f| %> 
    <label>age</label> 
    <%= f.text_field :age %> 
    <label>gender</label> 
    <%= f.select :gender, options_for_select(gender_options), { prompt: 'Select gender' } %> 
    <label>ethnicity</label> 
    <%= f.select :ethnicity, options_for_select(ethnicity_options), { prompt: 'Select ethnicity' } %> 
    <%= f.submit "Submit" %> 
<% end %> 

傳遞選項到形式的選擇字段的輔助方法(application_helper.rb):

def gender_options 
    [ ["male", '42198'], ["female", '42199'] ] 
end 

def ethnicity_options 
    [ ["No, not of Hispanic, Latino or Spanish", '42200'], ["Yes, Mexican, Mexican American", '42201'] ] 
end 
1

除了form_for之外,還有非機智形式的form_tag(不與Rails模型耦合的表單)。

+0

因此,這似乎給我打電話,但它似乎沒有包括任何輸入/下拉菜單。我更新了我的代碼和響應。 –