【问题标题】:ActiveResource NameError in Overridden Devise class重写设计类中的 ActiveResource NameError
【发布时间】:2017-07-14 20:50:47
【问题描述】:

我正在尝试在重写的设计资源(用户)中使用 ActiveResource 类(员工)。此时的目的只是返回一个员工列表,供注册用户在注册时选择。

controllers/user/registrations_controller.rb

def new
   @list = Staff.find()
   super
end

models/staff.rb

require 'active_resource'

class Staff < ActiveResource::Base
   self.site = "http://localhost/Staff/"
end

我的 gem 文件包含 gem 'active_resource'

当被覆盖的新方法被调用时,会显示以下错误;

NameError in User::RegistrationsController#new uninitialized constant User::RegistrationsController::Staff

关于如何克服这个问题的任何想法?

谢谢 标记

【问题讨论】:

    标签: ruby-on-rails ruby devise activeresource


    【解决方案1】:

    在控制器中,您引用了一个Staff 类,但在您的模型中,您定义了一个EposnowStaff 类。尝试将EposnowStaff 重命名为Staff

    【讨论】:

    • 更改了类名后,我收到报告的错误。令我困惑的是为什么将常量报告为 User::RegistrationsController::Staff?这可能是问题吗?
    • 此错误报告是 ruby​​ 如何在另一个常量的上下文中报告缺失常量的标准。您可以通过调用未定义的常量来自己试验:module Monkey; Llama; end。问题是ruby 没有找到Staff 常量,现在应该在app/models/staff.rb 中定义它并由rails 自动加载。如果还没有,请尝试停止服务器,使用 bin/spring stop 停止 spring,然后尝试重新启动服务器,看看是否可以正确加载 Staff 常量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    相关资源
    最近更新 更多