Форма отправки с использованием 'form_tag' и пространства имен в Ruby on Rails-3 - PullRequest
1 голос
/ 12 января 2011

Я пытаюсь вызвать метод 'update' из 'ROOT_RAILS / controllers / users / account_controller.rb'

  ...
end

def update
  ...
end

def ...

с помощью "form_tag" в / ROOT_RAILS / views / users / account /account.rb:

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

и с пространством имен в 'ROOT_RAILS / config / rout.rb'

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

Когда я пытаюсь отправить эту форму, у меня появляется

No route matches "/users/accounts/2"

В чем я не прав?


В 'form_tag' я попытался

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

вместо

users_account_path

, что я думаю, то же самое.


Если я использую форму ActiveRecord, работает:

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

1 Ответ

1 голос
/ 12 января 2011

Вы пробовали:

users_accounts_path
...