Dans mon modèle principal que je donne les résultats suivants:Erreur lors du rendu d'une partielle (RoR) faire passer la forme comme une variable locale
<%= render :partial => "delivery_date", :collection => @brand.delivery_dates, :locals => {:form => f} %>
Toutefois, lorsque les essais partiels d'utiliser la forme variable locale, je reçois cette erreur
Showing app/views/brands/_delivery_date.html.erb where line #2 raised:
wrong number of arguments (0 for 1)
Extracted source (around line #2):
1: <%= delivery_date.id %>
2: <%= form.text_field :name %>
3: <% new_or_existing = delivery_date.new_record? ? 'new' : 'existing' %>
4: <% prefix = "brand[#{new_or_existing}_delivery_date_attributes][]" %>
5: <% fields_for prefix, delivery_date do |dd_f| %>
Est-ce que quelqu'un comprend ce que cette erreur signifie?
En fait, je veux faire
<% form.fields_for delivery_date do |dd_f| %>
mais cela ne fonctionne pas aussi bien.
J'ai essayé de remplacer :locals
par :locals => { :f => f }
et de faire référence au formulaire en utilisant f
dans le partiel. Aucun effet, l'erreur est alors undefined method or variable f
.
...
Ok plutôt que de vous demander de déboguer une erreur, la question est aussi comment rendre fields_for sous une forme partielle imbriqué:
dans le modèle principal:
<% form_for @object do |f| %>
<% render :partial => 'child', :collection: @object.child %>
<% end %>
Dans le modèle enfant:
<% form.fields_for child do |c_f| %>
<%= c_f.text_field :foo %>
<% end %>
Quelle est la manière appropriée de passer ce formulaire objet?
Désolé oublié d'ajouter l'environnement:
Ruby 1.8.7
Rails 2.3.? (Doivent consulter la version mineure, ne pas le code devant moi)
(je sais que c'est une question de débutant :()
: local => {: x => 2} fonctionne. Coencidentally je réalise depuis que je rends également ce modèle dans un link_to_function, il aurait pu être que je ne cherchais pas à la pile d'erreur complètement et manquant où l'erreur a été de comming. Je pense que cela a aidé: P Je vais continuer à le faire. Merci. –