2011-12-30 44 views
0

我得到了一些令Rails 3完全混淆的funkiness。我似乎無法得到使用(主要)標準生成正確路徑的路由_form腳手架的風格。Rails 3路由不爲新的vs編輯視圖生成正確的路徑

首先,我正在做「admin」命名空間中的所有內容。如果我在創建新Team時使用admin_team_path(@team)生成路徑,但在編輯時提交表單,則會發出錯誤信息,除非使用admin_teams_path,否則表單部分會引發路由錯誤。

admin_team_path(@team)其中@team = Team.new引發此錯誤:

沒有路由匹配{:控制器=> 「管理員/隊」,:動作=> 「節目」,:ID => #}

同時... admin_teams_path(@team),其中@team =拋出這個錯誤:

行動 '編輯' 不能用於TeamsController

發現在後一種情況下,似乎指向網址:http://localhost:3000/teams/1/edit - 這是n不正確識別名稱空間。

這裏是我的全部_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 %> 

是怎麼回事?什麼是創建這種形式的部分正確的方式,所以它適用於新的和編輯操作?

命名空間似乎是如此混亂的工作。

+0

如何你的路線是否定義?像這樣的命名空間:管理員做資源:團隊結束? – 2011-12-30 07:58:51

回答

1

假設你已經在一個足智多謀的方式定義你的路線,像這樣:

namespace :admin do 
    resources :teams 
end 

然後,在你_form部分可以讓軌道照顧行動,像這樣:

<%= semantic_form_for(["admin", @team]) do |f| %> 
    .... #rest of the code 
<% end %>