gpt4 book ai didi

ruby-on-rails - 如何在 Rails 4 中使用路由进出命名空间的 Controller

转载 作者:行者123 更新时间:2023-12-04 16:51:26 24 4
gpt4 key购买 nike

我是 Rails 的新手,对命名空间的工作方式有点困惑。基本上我有类别和客户 Controller 。

我想创建一个管理命名空间(我还不明白)所以某些方法只能通过 /admin/products/id, via: 'delete' 访问( /admin/... 是重要的部分)命名空间,而其他方法可以像这样正常访问:/products, via: 'get'
如果我理解正确,为了创建命名空间,我需要创建一个子目录并将 Controller 放在该目录中,但我想在这种情况下它将无法正常访问?

这可能吗?如何?

我试过(例如)

match '/admin/products',    to: 'admin#index', via: 'get'

但它给了我一个错误,说一个变量(在模板中)不可用。但是,当我尝试没有 /admin 时它工作正常,这意味着问题在于命名空间情况。

最佳答案

如果您将以下命名空间添加到您的 route.rb

namespace :admin do
resources : categories
resources : customers
end

您可以在 controllers/admin 中创建以下 Controller 文件夹:
#base_controller.rb - will work like your application_controller for the namespace
class Admin::BaseController < ActionController::Base
...
end

#categories_controller.rb - will work like your categories_controller for the namespace
class Admin::CategoriesController < Admin::BaseController
...
end

#customers_controller.rb - will work like your customers_controller for the namespace
class Admin::CustomersController < Admin::BaseController
...
end

通过这种方式,您可以在基本 Controller 中添加身份验证,为管理员提供完全访问权限,并删除诸如 delete 之类的操作。 , edit从您的非命名空间部分。

我希望它有帮助...

关于ruby-on-rails - 如何在 Rails 4 中使用路由进出命名空间的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25576165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com