2014-05-07 12 views
6

Próbuję zmodyfikować istniejące menu konfiguracji profilu, tak aby z góry określić określone pola, takie jak płeć z rozwijanymi opcjami, a nie użytkownik musi je wpisać. Kod w swoim standardzie jest jak poniżej,Menu rozwijane Railsy z wymaganymi polami

<%= form_for @profile, html: {multipart: true}, url: profile_path do |f| %> 

    <div class="col-md-6"> 

    <div class="form-group"> 
     <%= f.text_field :firstname, required: true, placeholder: 'Firstname', class: 'form-control' %> 
    </div> 


    <div class="form-group"> 
     <%= f.text_field :lastname, required: true, placeholder: 'Lastname', class: 'form-control' %> 
    </div> 

     <div class="form-group"> 
     <%= f.date_field :dob, required: true, placeholder: 'Date of Birth', class: 'form-control' %> 
    </div> 

    <div class="form-group"> 
     <%= f.text_field :contactnr, required: true, placeholder: 'Contact Number', class: 'form-control' %> 
    </div> 

    <div class="form-group"> 
     <%= f.text_field :address1, required: true, placeholder: 'Address Line 1', class: 'form-control' %> 
    </div> 

    <div class="form-group"> 
     <%= f.text_field :address2, required: true, placeholder: 'Address Line 2', class: 'form-control' %> 
    </div> 

    <div class="form-group"> 
     <%= f.text_field :town, required: true, placeholder: 'Town', class: 'form-control' %> 
    </div> 

    <div class="form-group"> 
     <%= f.text_field :county, required: true, placeholder: 'County', class: 'form-control' %> 
    </div> 

    <div class="form-group"> 
     <%= f.text_field :country, required: true, placeholder: 'Country', class: 'form-control' %> 
    </div> 

    <div class="form-group"> 
     <%= f.text_field :postcode, required: true, placeholder: 'Postcode', class: 'form-control' %> 
    </div> 

    <div class="form-group"> 
     <%= f.text_field :gender, required: true, placeholder: 'Gender', class: 'form-control' %> 
    </div> 

    <form action=""> 
     <input type="radio" name="sex" value="Male">Male<br> 
     <input type="radio" name="sex" value="Memale">Female 
    </form> 

    </div> 

    <div class="col-md-6"> 

    <div class='uploaded-pic'> 
     <%= image_tag @profile.image.url(:medium) %> 
    </div> 

    <div class="form-group"> 
     <%= f.file_field :image %> 
    </div> 

    <%= f.submit class: 'btn btn-success' %> </p> 

    </div> 

<%end%> 

szczególności chcę stworzyć jakąś mieszanką poniższych dwóch kawałków kodu, dzięki czemu użytkownik może wybrać wartość z listy rozwijanej, które zostaną zapisane, gdy formularz jest przesłane.

<div class="form-group"> 
      <%= f.text_field :gender, required: true, placeholder: 'Gender', class: 'form-control' %> 
     </div> 

     <form action=""> 
      <input type="radio" name="sex" value="Male">Male<br> 
      <input type="radio" name="sex" value="Memale">Female 
     </form> 

Odpowiedz

9

Można użyć select jak ten

<%= f.select :gender, %w{Male Female}, :prompt => 'Select', required: true, placeholder: 'Gender', class: 'form-control' %> 

Aby uzyskać więcej informacji, zobacz ten API.

+1

Doskonały, okrzyki kolega. Jedyną rzeczą, którą musiałem edytować (dla każdego z podobnym problemem), był symbol zastępczy "f" (f.select) na początku kodu i zawinięcie go do odpowiednio nazwanej nazwy div i klasy. –

+0

@RichardC Cool! Miło, że mogłem pomóc :) – Pavan