我的路线
TerritoryManagement::Application.routes.draw do
get 'new' => 'territories#new', :as => 'new'
root :to => 'territories#index', :as => 'territories'
resources :territories
resources :users
end
在我的控制器中创建
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="/"
是问题,但我不明白为什么要生成它?如何修改应用程序将创建记录的路线,然后转到索引或编辑视图?
由于 托马斯
答案 0 :(得分:1)
这对我有用:
TerritoryManagement::Application.routes.draw do
get 'new' => 'territories#new', :as => 'new'
resources :territories
root :to => 'territories#index'
end
似乎:as选项导致了一些问题。这就是为路由命名,但由于您已经完成了'资源:地区',因此您已经为标准CRUD操作命名了路由。我还将根路由移动到文件末尾。我不记得为什么,但似乎这是Rails 2.3天里的“最佳实践”。