2010-04-22 53 views
0

所以我創建了一個網站,我想在rails 1.8.x中有一個管理目錄,並且我掙扎了一下讓form_for鏈接到了右側控制器。我正在嘗試成爲RESTful。我基本上要的是,有一個動作,然後可以管理子模型,如總結的管理頁面:1.8.x Ruby on Rails RESTful嵌套管理頁面和form_for問題

/admin (a summary of events) 
/admin/sales (edit sales on the site) 
/admin/sales/0 (the normal RESTful stuff) 

我不能使用命名空間,因爲他們的Rails 2.0(生產網站,我不介紹不想更新導軌等等)。

不管怎麼說,我在routes.rb中是:

map.resource :admin do |admin| 
    admin.resources :sales 
end 

我用map.resource作爲一個單身所推薦的其他網站。

當我嘗試使用form_for以REST方式鏈接到子資源時,問題就出現了。如果我這樣做:

form_for(:sales, @sale) 

它從來沒有鏈接到正確的控制器,無論我嘗試。我也曾嘗試:

form_for [@admin, @sale] do |f| 

並且不工作,要麼(因爲管理員是沒有一個模型單身我猜測,它只是爲管理控制器的佔位符)。我應該添加一個前綴還是什麼?或者進入銷售控制器來指定它是管理員的子控制器?有沒有更容易的方法來做到這一點,而無需手動創建一堆路線?謝謝你的幫助。

回答

0

您可以使用控制器,動作和html選項,如下所示。

<%= form_for :sales, :controller=>controllerName, :action=>actionName, :id=>idParameter}, :html=>{:onsubmit=>"someFunction()"} do |f| %> 


      | 
      | 
      | 




<% end %>