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天的"最佳实践"。