2016-03-16 6 views
1

J'utilise SimpleForm 3.2.1 avec Rails 4. J'essaie de convertir une forme de rails en simple_form. Voici le code qui fonctionne pour les boutons radio avec la forme régulière de rails:bouton radio simple_formulaire

<ul class="list-radios list-multiplier"> 
    <% @organization_plans.each_with_index do |plan, index| %> 

     <li> 
     <div class="radio custom-radio"> 
      <%= f.radio_button :plan_id, plan.id, id: "field-rad#{index}", data: {price: plan.total_price} %> 

      <label class="form-label" for='field-rad<%= index %>'> 
      <span></span> 

      <%= plan.description %> 
      </label> 
     </div><!-- /.radio --> 
     </li> 
    <% end %> 
    </ul><!-- /.list-radios --> 

J'ai essayé de le convertir en SimpleForm avec le code suivant:

<ul class="list-radios list-multiplier"> 
    <% @organization_plans.each_with_index do |plan, index| %> 

     <li> 
     <div class="radio custom-radio"> 
      <%= f.input :plan_id, value: plan.id, input_html: {id: "field-rad#{index}"}, data: {price: plan.total_price}, label: false, as: :radio %> 

      <label class="form-label" for='field-rad<%= index %>'> 
      <span></span> 

      <%= plan.description %> 
      </label> 
     </div><!-- /.radio --> 
     </li> 
    <% end %> 
    </ul><!-- /.list-radios --> 

Cependant, quand j'ouvre la page dans le navigateur j'obtiens l'erreur:

No input found for radio 

Comment obtenir ce formulaire pour commencer à travailler avec simple_form?

Répondre

0

Selon SimpleForm source code il n'a pas par défaut radio entrée.

Documentation de ce petit bijou suggère quelques façons d'utiliser les boutons radio:

  1. <%= f.input :plan, as: :radio_buttons %>
  2. <%= f.input :plan, as: :boolean %> (avec une poignée de valeur ajoutée)
  3. Vous pouvez écrire votre propre entrée personnalisée, F.E. nommé radio et mis dans le dossier app/entrées. Read more about custom inputs
0

Il n'y a rien de mal à utiliser les aides de rails ordinaires. Vous pouvez les imbriquer dans l'entrée si vous souhaitez des wrappers cohérents. Il peut ressembler à quelque chose comme

= f.input :plan_id, label: false do 
    ul 
    - @organization_plans.each do |plan| 
     li 
     = f.radio_button :plan_id, plan.id 
     = f.label :plan_id, plan.description, value: plan.id 

Bien sûr, vous pouvez également utiliser la collection si vous n'avez pas besoin de trop de personnalisation

= f.input :plan_id, collection: @organization_plans.pluck(:id, :description), as: :radio_buttons, label: false