10
votes

Form_for NO-AR Modèle - FieldS_for Array Attribut Ne pas itérer

J'ai du mal à obtenir fields_for pour fonctionner sur un attribut de tableau d'un modèle non activeCord.

distillé, je dois suivre:

modèles / parent.rb xxx

contrôleurs / parent_controller.rb xxx

vues / new_parent.html.haml < Pré> xxx

avec le code ci-dessus, ma page contient ["hello", "monde"] - c'est-à-dire le résultat de inspecter Appelé sur le tableau attribué à barres . (Avec @ parent.bars omis à partir de la ligne line_for , je viens d'obtenir nil affiché).

Comment puis-je faire fields_for se comporter comme pour une association AR - c'est-à-dire exécuter le code dans le bloc une fois pour chaque membre de mes barres tableau


1 commentaires

Merci pour cela. Je n'ai pas pensé que quelqu'un d'autre avait essayé de faire ça! Merci beaucoup!


3 Réponses :


12
votes

Je pense que la bonne technique est la suivante:

= form_for @parent, :url => new_parent_path do |f|
  - @parent.bars.each do |bar|
    = f.fields_for "bars[]", bar do |r|
      = r.object.inspect


0 commentaires

1
votes

Je pense que cela peut être fait sans le besoin de chacun:

class Parent
  def bars_attributes= attributes
  end
end


0 commentaires

0
votes

J'ai abandonné les champs_for et ajouté plusieurs: true xxx


0 commentaires