Rails不创建记录-路由问题



my routes

TerritoryManagement::Application.routes.draw do
  get 'new' => 'territories#new', :as => 'new'
  root :to => 'territories#index', :as => 'territories'
  resources :territories
  resources :users
end

create in my controller

def create
  @territory = Territory.new(params[:territory])
  if @territory.save
    redirect_to root_url, :notice => "Product successfully created!"
  else
    render "new"
end

我认为

<%= form_for(@territory) do |f| %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
由此产生

<form accept-charset="UTF-8" action="/" class="new_territory" id="new_territory" method="post">

我知道这个action="/"是问题,但我不明白为什么要生成它?如何修改我的路由,让应用程序创建记录,然后转到索引或编辑视图?

谢谢托马斯。

这对我有用:

TerritoryManagement::Application.routes.draw do
   get 'new' => 'territories#new', :as => 'new'
   resources :territories
   root :to => 'territories#index'
end

似乎:as选项引起了一些问题。这是为了给路由一个名称,但是由于您已经完成了"资源:领土",您已经为标准CRUD操作命名了路由。我还将根路由移到了文件的末尾。我不记得为什么,但这似乎是Rails 2.3天的"最佳实践"。

最新更新