2009-03-07 40 views
9

¿Cuál es la forma correcta de hacer casillas de verificación relacionadas con una determinada pregunta en Ruby on Rails? Por el momento tengo:Casillas de verificación en rieles

<div class="form_row"> 
    <label for="features[]">Features:</label> 
    <br><%= check_box_tag 'features[]', 'scenarios' %> Scenarios 
    <br><%= check_box_tag 'features[]', 'role_profiles' %> Role profiles 
    <br><%= check_box_tag 'features[]', 'private_messages' %> Private messages 
    <br><%= check_box_tag 'features[]', 'chatrooms' %> Chatrooms 
    <br><%= check_box_tag 'features[]', 'forums' %> Forums 
    <br><%= check_box_tag 'features[]', 'news' %> News 
    <br><%= check_box_tag 'features[]', 'polls' %> Polls 
</div> 

también quiero ser capaz de comprobar automáticamente los elementos seleccionados previamente (si esta forma fue re-cargado). ¿Cómo cargaría los parámetros en el valor predeterminado de estos?

Respuesta

14

Usted está buscando en lo siguiente:

<div class="form_row"> 
    <label for="features[]">Features:</label> 
    <% [ 'scenarios', 'role_profiles', ... , 'polls' ].each do |feature| %> 
     <br><%= check_box_tag 'features[]', feature, 
       (params[:features] || {}).include?(feature) %> 
     <%= feature.humanize %> 
    <% end %> 
</div> 

Aunque si ya tiene un modelo Feature, con una mesa features y una relación has_many :features, es probable que desee esto:

<div class="form_row"> 
    <label for="feature_ids[]">Features:</label> 
    <% for feature in Feature.find(:all) do %> 
     <br><%= check_box_tag 'feature_ids[]', feature.id, 
       @model.feature_ids.include?(feature.id) %> 
     <%= feature.name.humanize %> 
    <% end %> 
</div> 
+0

variable local indefinido o método 'características 'para # alamodey

+0

Bueno, ¿qué modelo tiene la asociación de características y en qué variable se almacena? @¿artículo? @¿producto? :) – vladr

+0

En realidad, ¿por qué no publicar el código completo para su vista _and_ action (del controlador) _y_ modelos relevantes? – vladr

Cuestiones relacionadas