Un avertissement rapide: Je suis assez nouveau pour Rails, et ma connaissance est un peu cookie-cutter-esque. Je sais comment faire certaines choses, mais il me manque cette compréhension vitale de la raison pour laquelle ils travaillent toujours.Comment utiliser Form_For pour mettre à jour un attribut de hachage dans le modèle
J'ai actuellement un modèle d'utilisateur qui a dans lui un tas d'information, comme l'adresse, l'email, etc. En outre, il a également un hachage appelé visible. Les clés de ce hachage sont chacune des informations, et la valeur est soit vraie soit fausse pour que l'utilisateur souhaite que cette information soit publiquement visible. Bien que je ne sois pas sûr que ce soit la meilleure façon de procéder, je ne vois pas d'autre moyen que de créer une tonne de variables booléennes pour chaque bit d'information. Enfin, je sérialiser: visible pour le stockage dans la base de données
Ce que je voudrais, c'est dans ma vue d'édition d'avoir une case à cocher à côté de chaque champ d'information qui représente l'attribut visible. Après avoir lu des tonnes d'autres articles liés à ce sujet et en essayant de nombreuses variantes de code, je finis toujours avec une sorte d'erreur. Le code qui ressemble le plus intuitivement correct pour moi est la suivante:
<%= form_for(@user, :id => "form-info-personal") do |f| %>
...
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.check_box :visible[:name] %>
Mais je reçois un message d'erreur indiquant qu'un symbole ne peut pas être analysé dans un entier. Je ne suis pas sûr d'où cette analyse tente même d'arriver, à moins qu'elle ne soit visible: visible en tant que tableau et essayant d'utiliser: name comme index. Je m'excuse à l'avance si cette question est triviale/apparemment absurde/manque d'informations vitales/etc. Des conseils, des suggestions, des liens, ou quoi que ce soit vous seraient très appréciés, même s'ils sont dans le sens de «vous faites cela fondamentalement mal, revenez et faites-le de cette façon».
-Nick
Restez à l'écart de la sérialisation. C'est le premier problème que vous avez, mais vous aurez plus de problèmes à cause de la sérialisation. Ajouter des colonnes spécifiques n'est pas du tout faux. – wanghq
@wanghq: Il n'y a rien de mal avec la sérialisation (si vous cuisinez bien). –