在Ruby on Rails-3中使用'form_tag'和名称空间提交表单

时间:2011-01-12 12:06:02

标签: ruby-on-rails forms namespaces ruby-on-rails-3 submit

我试图从'ROOT_RAILS / controllers / users / account_controller.rb'调用'update'方法

  ...
end

def update
  ...
end

def ...

在'/ROOT_RAILS/views/users/accounts/account.rb中使用“form_tag”:

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

在'ROOT_RAILS / config / routes.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 个答案:

答案 0 :(得分:1)

你试过了吗?

users_accounts_path