Rails de 4 cases pour has_and_belongs_to_many association
J'ai récemment eu un problème de faire des cases à cocher à travailler pour un has_and_belongs_to_many (HABTM), association de Rails 4. J'ai été en mesure de trouver de l'information sur la façon de le faire fonctionner correctement dans un peu disparates endroits, mais pensé qu'il serait bon de documenter les quelques étapes simples nécessaires pour le faire fonctionner correctement dans un endroit ici sur StackOverflow.
Comme une installation d'assumer un modèle de Cage avec un HABTM association Gestionnaire.
class Kennel
has_and_belongs_to_many :handlers
end
OriginalL'auteur Coenwulf | 2014-02-10
Vous devez vous connecter pour publier un commentaire.
C'est tout ce que vous devez faire pour la forme: ne pas le faire manuellement quand il y a un construit en aide.
apidock.com/rails/ActionView/Helpers/FormOptionsHelper/...
Si en utilisant des paramètres, veillez à ajouter (comme on le voit dans d'autres réponses)
params.require(:kennel).permit({handler_ids: []})
Je sais que l'OP spécifié Rails 4, mais seulement comme un FYI, ce
collection_check_boxes
méthode est uniquement disponible dans les Rails 4+.OriginalL'auteur JP Duffy
La forme devrait avoir quelque chose comme ceci:
La hidden_field_tag permet à l'utilisateur de décocher toutes les cases et de réussir à éliminer toutes les associations.
Le contrôleur doit permettre le paramètre par le biais de solides paramètres dans le permitted_params méthode:
Références:
check_box_tag
manque de fermeture de la parenthèseMerci @LukasMac. Fixe.
OriginalL'auteur Coenwulf
- Je mettre en œuvre
has_and_belongs_to_many
association de cette façon:modèle de rôle à la
modèle/utilisateur
utilisateurs/_form.html.erb
users_controller.rb
Intermédiaire table_name devrait être roles_users et il devrait y avoir deux champs:
Nom de la Table est une Partie délicate, pour mon gars de vérifier son rôle un rôle.
OriginalL'auteur A H K