has_many: à travers et FormBuilder.fields_for
-
24-09-2019 - |
Question
J'ai un Bar
de classe qui a une liste définie par l'utilisateur des touches de configuration et des valeurs, définies comme suit:
class Bar < ActiveRecord::Base
has_many :config_keys, :through => Foo
has_many :config_values
end
Ainsi, les clés de configuration disponibles proviennent de la classe Foo
et les valeurs de ceux qui viennent de la classe Bar
.
Je suis en train de créer un formulaire pour cette classe de bar, et je dois boucler sur chacun des champs config_keys
en utilisant la propriété name
comme l'étiquette, mais la zone de texte devrait être pour le value
du config_values
Ce que je vois est que si je fais
Je pensais que f.fields_for
sur une collection ferait la boucle pour moi.
Suis-je approchais ce la bonne voie? Se sent comme je suis vraiment lutter contre le cadre.
La solution
J'ai fini par obtenir que cela fonctionne, mais la clé était de ne pas utiliser f.fields_for bar.config_keys ... au lieu que je vous assurer qu'un enregistrement de valeur existe pour chacune des touches (sur un before_save sur mon modèle) et je fais la forme imbriquée pour la collecte de valeurs à la place.
Je ne suis toujours pas sûr pourquoi l'objet de ce générateur de formulaire était un tableau, cependant.