1
class Category < ActiveRecord::Base 
    serialize :blocked_user_ids, Array 
end 

Vue:Comment utiliser collection_check_boxes avec tableau sérialisé

<%= collection_check_boxes(:category, :blocked_user_ids, User.all, :id, :full_name) %> 

L'identifiant d'un utilisateur bloqué est stocké dans l'attribut sérialisé blocked_user_ids. Passer les cases cochées/non cochées pour tous les utilisateurs avec collection_check_boxes au contrôleur fonctionne parfaitement.

Je me demande cependant comment afficher une case à cocher pour chaque ID qui est stocké dans le tableau blocked_user_ids?

Répondre

0

<%= collection_check_boxes(:category, :blocked_user_ids, User.all, :id, :full_name) %>

deviendrait alors

# Probably NOT a good idea to interate through all Users! 
- User.all.each do |user| 
    # assuming user has a `name` attribute 
    %label 
    = check_box_tag "category[blocked_user_ids][]", 
     value = "#{user.id}", 
     checked = (@category.block_user_ids.include? user.id.to_s), 
     id: "blocked_user_ids_#{user.id}" 
    "#{user.name}" 
+0

Je n'ai pas testé ce code, donc il pourrait y avoir des fautes de frappe, ne hésitez pas à me faire savoir si cela ne fonctionne pas et je peux le réparer. –