J'essaye de créer un formulaire pour une ressource imbriquée. Voici mon itinéraire:Quelle est la syntaxe form_for pour les ressources imbriquées?
map.resources :websites do |website|
website.resources :domains
end
Voici mes tentatives et les erreurs:
<% form_for(@domain, :url => website_domains_path(@website)) do | form | %>
<%= form.text_field :name %>
# ArgumentError: wrong number of arguments (1 for 0)
# form_helper.rb:290:in 'respond_to?'
# form_helper.rb:290:in 'apply_form_for_options!'
# form_helper.rb:277:in 'form_for'
<% form_for([@website, @domain]) do | form | %>
<%= form.text_field :name %>
# ArgumentError: wrong number of arguments (1 for 0)
# form_helper.rb:290:in 'respond_to?'
# form_helper.rb:290:in 'apply_form_for_options!'
# form_helper.rb:277:in 'form_for'
<% form_for(:domain, @domain, :url => website_domains_path(@website)) do | form | %>
<%= form.text_field :name %>
# ArgumentError: wrong number of arguments (1 for 0)
# wrapper.rb:14:in 'respond_to?'
# wrapper.rb:14:in 'wrap'
# active_record_helper.rb:174:in 'error_messages_for'
<% form_for(:domain, [@website, @domain]) do | form | %>
<%= form.text_field :name %>
# UndefinedMethodError 'name' for #<Array:0x40fa498>
J'ai confirmé que les deux @website
et @domain
contiennent des instances de la classe correcte.
Les routes aussi générer correctement est utilisé comme ceci par exemple, donc je ne pense pas que leur problème avec l'aide de route ou url.
<%= website_domains_path(1) %>
<%= website_data_source_path(1, 1) %>
Rails 2.3.5
Même si la solution à mon problème est la bonne réponse à la question et je préférerais attribuer les points à quelqu'un d'autre que moi-même! – Kris
'for_for' ->' form_for' (je n'étais pas capable de modifier directement) – static