在创建管理产品的管理员时,我应该只为产品控制器创建一个 Admin 命名空间,还是也为模型创建一个命名空间?
当我也有模型的命名空间时,我不能将以下代码用于新的操作表单:
<%= form_for [:admin, @product] do |f| %>
我将不得不使用
<%= form_for @product do |f| %>
并在控制器中
def new
@product = Admin::Product.new
end
什么是最好的方法?
在创建管理产品的管理员时,我应该只为产品控制器创建一个 Admin 命名空间,还是也为模型创建一个命名空间?
当我也有模型的命名空间时,我不能将以下代码用于新的操作表单:
<%= form_for [:admin, @product] do |f| %>
我将不得不使用
<%= form_for @product do |f| %>
并在控制器中
def new
@product = Admin::Product.new
end
什么是最好的方法?
最好的方法是
路线.rb
namespace :admin do
resources :products
end
控制器管理员/products_controller.rb
class Admin::ProductsController < ApplicationController
def new
@product = Product.new
end
end
我认为您不应该为管理员命名模型
我猜Product
在命名空间中使用与在其他任何地方使用admin
的相同。Product
所以答案是,在这种情况下,你不应该命名你的模型。