2009-01-06 5 views
0

Existe-t-il un moyen d'utiliser fields_for avec dans un formulaire sans avoir de portée?Rails: Fields_for sans une portée?

Par exemple:

<% fields_for "user[]" do |x| 
    <%= x.text_field :name %> 
<% end %> 

Sans le modèle utilisateur étant chargé en mémoire? Je l'ai eu en utilisant territoire [user] [] [nom], mais je voudrais le garder dans ERB.

Répondre

1

Je pense que la réponse serait «non», puisque ceux form_for et fields_for essaieraient de déterminer la valeur par défaut de cette variable d'instance donnée. Cependant, je pense que si vous voulez réduire l'utilisation de la mémoire en chargeant ce modèle, vous pouvez essayer de créer un modèle de maquette pour renvoyer des valeurs nulles, et créer un objet d'instance à partir de celui-ci.

0

Y a-t-il une raison particulière pour laquelle vous devez utiliser form_for spécifiquement? C'est vraiment conçu pour être utilisé avec un objet modèle instancié.

Alternativement, pourquoi n'utilisez-vous pas simplement les étiquettes auxiliaires normales de forme. Vous pouvez le définir comme suit:

<%form_tag :my_form do %> 
<%= text_field_tag :foo, :bar %> 
<%end%> 

Vous pouvez consulter la documentation pour une vue d'action pour voir comment tout cela fonctionne.

+0

La raison pour laquelle je peux simplement utiliser une portée est que le formulaire n'édite pas les objets existants dans la base de données. C'est fondamentalement en sélectionnant un groupe d'utilisateurs à partir d'un menu déroulant, et à la création, chaque utilisateur sélectionné est updated_attribute'd. Je crois que field_for est verrouillé dans une portée à partir de la lecture de l'API. – dMix

+0

Ma prochaine question serait de savoir comment passer le hash (team []) en utilisant une balise d'aide de forme régulière? – dMix