使用Rails 3,我在根命名空间中有一些模型(例如Product),但在Admin :: module中有控制器(例如Admin :: ProductsController)。不幸的是,这似乎导致了基本功能的问题,例如form_for(@product)产生
undefined method `products_path' for #<#<Class:0x103dc4110>:0x103dc1618>
这可能是因为routes.rb条目
namespace :admin do
resources :products
end
产生
admin_products GET /admin/products(.:format) {:action=>"index", :controller=>"admin/products"}
带有“admin_”前缀,但form_for(@product)似乎并不理解。
我想向Rails声明编辑Products的控制器是Admin :: ProductsController,但两者之间的链接似乎缺失了。我试过了:
构建此类系统的Rails-y,现代化方法是什么,我该如何解决这个问题呢?我觉得我一直在与框架作斗争,所以如果总体上有更好的方法可以做到这一点我愿意接受建议,但即使我试图通过将模型放在Admin ::中来解决问题只是开辟了新的问题...
答案 0 :(得分:2)
这应该做你想做的事:form_for [:admin, @product]
答案 1 :(得分:0)
尝试form_for @product, :url => admin_product_path(@product)