2011-01-12 4 views
0

Je suis en train d'appeler la méthode 'de mise à jour' de 'ROOT_RAILS/contrôleurs/utilisateurs/account_controller.rb'Envoi de formulaire en utilisant 'form_tag' et dans les espaces de noms Ruby on Rails 3-

... 
end 

def update 
    ... 
end 

def ... 

en utilisant un « form_tag 'dans' /ROOT_RAILS/views/users/accounts/account.rb:

<% form_tag (users_account_path, :method => :post) do %> 
    <%= text_field_tag :name %> 
    <%= text_field_tag :surname %> 
    <%= submit_tag_tag "Update" %> 
<% end %> 

et ayant un espace de noms dans 'ROOT_RAILS/config/routes.rb'

... 
    namespace "users" do 
    resources :accounts do 
     collection do 
     ... 
     end 
    end 
    end 
... 

Lorsque je tente de soumettre ce formulaire, j'ai un

No route matches "https://stackoverflow.com/users/accounts/2" 

Qu'est-ce que je me trompe?


Dans 'form_tag Je tryed

:controller => "users/accounts", :action => "update" 

au lieu de

users_account_path 

que je pense est le même.


Si j'utiliser un formulaire ActiveRecord fonctionne:

<%= form_for(@account, :url => { :action => "update", :controller => "accounts" } }) do |f| %> 
    ... 

Répondre

1

Avez-vous essayé:

users_accounts_path 
+1

'users_accounts_path', dans mon cas, semble correspondre à l'action 'créer'. – user502052

+0

Je me suis dit que c'est là que tu voulais aller, puisque tu utilises la méthode post? Vous le savez probablement, mais "rake routes" vous montrera toutes les routes disponibles pour votre application. – polarblau

Questions connexes