2010-04-22 55 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 %>