【发布时间】:2012-01-30 10:22:24
【问题描述】:
我得到了一些让我对 Rails 3 完全感到困惑的时髦。我似乎无法使用脚手架的(主要)标准 _form 样式来生成正确路径的路由。
首先,我在“管理员”命名空间内做所有事情。我发现如果我在创建新团队时使用 admin_team_path(@team) 生成路径,那么表单部分会引发路由错误,但是在编辑时提交表单,除非我使用 admin_teams_path,否则它会引发错误。
admin_team_path(@team) where @team = Team.new 抛出此错误:
没有路由匹配 {:controller=>"admin/teams", :action=>"show", :id=>#}
同时... admin_teams_path(@team) 其中@team = 抛出此错误:
找不到 TeamsController 的“编辑”操作
在后一种情况下,它似乎指向 URL:http://localhost:3000/teams/1/edit - 它没有正确识别命名空间。
这是我的完整 _form.html:
<%= semantic_form_for(@team, :url => admin_teams_path(@team)) do |f| %>
<%= f.semantic_errors %>
<%= f.inputs do %>
<%= f.input :user_id %>
<%= f.input :league_id %>
<%= f.input :name %>
<% end %>
<%= f.buttons do %>
<%= f.commit_button :button_html =>{:class => "primary"} %>
<% end %>
<% end %>
什么给了?什么是创建此表单部分的正确方法,以便它适用于新操作和编辑操作?
命名空间似乎很乱。
【问题讨论】:
-
您的路线是如何定义的? sth like this namespace :admin do resources :teams end ?
标签: ruby-on-rails namespaces routes