Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 轨道5.2中的布线_Ruby_Ruby On Rails 5.2 - Fatal编程技术网

Ruby 轨道5.2中的布线

Ruby 轨道5.2中的布线,ruby,ruby-on-rails-5.2,Ruby,Ruby On Rails 5.2,我有一个带有管理员控制器的RoR应用程序,管理员可以对项目进行CRUD,现在当涉及到路由时,我有点困惑。如何创建应用程序,使其具有指向新项目的链接,如:admin/item/new,而不是使用authenticate\u admin创建项目控制器?方法(因为我使用设备) 总之,rails是如何实现这种路由的 e、 g.管理员/订单/:id 或 存储/销售/延迟理想情况下,您的管理员控制器不应对项目对象执行任何凝乳操作。为此,您应该使用items\u控制器 为了实现您想要做的事情,您可以使用管理员

我有一个带有管理员控制器的RoR应用程序,管理员可以对项目进行CRUD,现在当涉及到路由时,我有点困惑。如何创建应用程序,使其具有指向新项目的链接,如:admin/item/new,而不是使用authenticate\u admin创建项目控制器?方法(因为我使用设备)

总之,rails是如何实现这种路由的

e、 g.管理员/订单/:id 或
存储/销售/延迟

理想情况下,您的
管理员控制器
不应对
项目
对象执行任何凝乳操作。为此,您应该使用
items\u控制器

为了实现您想要做的事情,您可以使用管理员名称空间,并可能从管理员控制器继承
item\u controller

所以,你可以有这样的东西

#app/controllers
AdminController < ApplicationController

end

#app/controllers/admin/
module Admin
  ItemsController < AdminController

  end
end

#config/routes
namespace :admin do
  resources :items
end
#应用程序/控制器
AdminController<应用程序控制器
结束
#应用程序/控制器/管理员/
模块管理员
ItemsController

如果您仍然面临任何问题,为什么不进行检查,尝试定义应用程序的路径,并更新问题?太棒了。你说的很有道理,谢谢你,我一定会尝试这个方法。我现在能够实现路由部分。在成功保存到数据库后,我被困在显示项目中。我在尝试运行@items时遇到一个错误,说“undefined method title”。tittle@JusticeM,如果不查看代码的实际错误,很难判断。但是,假设您使用的是标准rails方式,那么它应该是
@item
,而不是@items
@items
是一个项目列表,
@item
仅表示一个项目对象。因此,如果您想获得标题,您必须执行
@item.title
@item.title给我一个“管理中的NoMethodError::Items#show”…说“nil:NilClass的未定义方法'title'”@JusticeM,您的
@item
变量看起来是nil(null)。由于这是一个不同于您上面提出的问题的问题,请将其作为单独的问题与您的代码和错误(堆栈跟踪)一起发布,然后我或其他人可以帮助您解决。因为在没有看到代码的情况下很难说出原因。