gpt4 book ai didi

ruby-on-rails - rails 中无模型的 Controller 的布线3

转载 作者:行者123 更新时间:2023-12-03 11:10:39 25 4
gpt4 key购买 nike

我有一个名为BaseController的 Controller ,该 Controller 从ApplicationController继承了关联的模型,但是它具有ping方法,该方法仅响应一条消息以告知一切正常。

我正在尝试通过我的routes.rb文件中的BaseController设置来调用操作ping:

namespace :api, defaults: { format: 'json' } do   
match '/ping' => 'base#ping'
end

但是它总是给我一个NameError uninitialized constant Base。我想它正在尝试寻找一个不存在的称为Base的模型,因此,我不知道如何设置到 Controller 的正确路由。

我的BaseController的内容如下:
class Api::BaseController < ApplicationController
load_and_authorize_resource
respond_to :json

def ping
respond_with({ :status => 'OK' })
end
end

作为额外的信息: BaseController只是其他 Controller 要继承的父 Controller 。其他是足智多谋的 Controller ,并具有相关的模型

谢谢。

最佳答案

当在路由周围放置一个 namespace 时,它将在该 namespace 内寻找 Controller 。

因此,在您的情况下,它将寻找一个名为Api::BaseController的 Controller ,该 Controller 通常存储在app/controllers/api/base_controller.rb中。这是您的 Controller 的设置方式吗?

有关更多详细信息,请参见此处:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

编辑:

我不认为没有找到问题的 Controller 。由于您在 Controller 中调用load_and_authorize_resource导致了该错误。 CanCan使用 Controller 名称尝试加载资源。

如果没有用于 Controller 的模型,请调用authorize_resource :class => false

有关更多详细信息,请参见bottom of this page

关于ruby-on-rails - rails 中无模型的 Controller 的布线3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12835764/

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