我有一個管理員名稱空間,它爲我提供了通常的路線,例如admin_projects和admin_project,但它們並不像通常那樣運行。這是我的第一個Rails 2.3項目,所以也許我通過Google找不到任何信息。已在Rails 2.3中更改了名稱空間路由嗎?
map.namespace(:admin) do |admin|
admin.resources :projects
end
奇怪的是對於一個給定的URL(如/管理/項目/ 1)我沒有在一個物體傳遞到得到的URL它在某種程度上猜他們:
<%= admin_project_path %> # => /admin/projects/1
不用擔心,以前沒有注意到這個問題。
但是,如果我試圖像通常那樣傳遞一個對象:
<%= admin_project_path(@project) %> # => admin_project_url failed to generate from {:controller=>"admin/projects", :action=>"show", :id=>#<Project id: 1, name: "teamc...>
「:ID」似乎包含整個對象,所以我儘量直接傳遞的ID和它的工作原理:
<%= admin_project_path(@project.id) %> # => /admin/projects/1
這不會是那麼糟糕,但是當它涉及到形式我通常使用:但是,[管理員,@object]:
<%= url_for [:admin, @project.id] %> # => undefined method `admin_fixnum_path'
所以我不能傳入一個id,因爲它需要一個對象類來計算出正確的路線。
<%= url_for [:admin, @project] %> # => Unfortunately this yields the same error as passing a object to admin_project_path, which is what it is calling.
我不能發現任何錯誤,這是非常標準的,所以我不知道是怎麼了?...
順便提及我當然可以得到周圍的form_for問題具有以下長手版本: <%的form_for @project,:URL => admin_project_path(@ project.id):方法=>:放do | f | %> – Kris 2009-07-29 15:42:46