Comment créer des cases à cocher dans form_for
de hashed enum
:Rails formulaire avec des cases à cocher de ENUM (hachage)
class UserProfile < ApplicationRecord
enum locations: { Kursenai: 0, Papiskes: 1, Versiai: 2 }
J'essaie quelque chose comme:
<div class="field">
<% UserProfile.locations.map { |k, v| }.each do |key, val| %>
<%= f.label key %><br />
<%= f.check_box :locations, {:multiple => true}, val, nil %>
<% end %>
</div>
Mais cela échoue à bien des égards, par ex . Je pensais que je pouvais saisir key
de la boucle et le définir comme une valeur de l'étiquette .. Mon Postgres a:
t.integer "locations", array: true
I permettent également locations
en params fortes:
..permit(:locations)
Faut-il être fait quelque chose d'autre pour enregistrer tableau en DB?
S'il vous plaît également le conseil sur ceci - maintenant que enum
est placé dans un modèle mais je l'emploierai également dans d'autres classes, ainsi devrais-je le créer comme concern
ou juste comme classe simple?
Merci à l'avance
EDIT:
que je fais dans la console:
p = { Kursenai: 0, Papiskes: 1, Versiai: 2 }
p.map{|k,v| [k, v]}.each do |key, val| puts key, val
Et je reçois:
Kursenai
0
Papiskes
1
Versiai
2
=> [[: Kursenai, 0], [: Papiskes, 1], [: Versiai, 2]]
Et dans le modèle, la première case à cocher apparaît sans une case à cocher (juste l'étiquette), tandis que le dernier n'a pas d'étiquette. Hm ...
Oups, erreur stupide - 'map' ne retourne rien: D Mieux vaut retourner quelque chose :) -' UserProfile.locations.map {| k, v | [k, v]} '. Mais cela ne fonctionne toujours pas comme prévu - l'étiquette de la dernière case à cocher affiche une énumération complète au lieu de la clé d'un élément. S'il vous plaît n'hésitez pas à écrire une meilleure mise en œuvre de ce –
Oh ...... Cant belevae cela .. J'avais '
' placé là ... Dommage pour ma famille ... –