Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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 on rails 控制器中未初始化的常量--常量是我的lib目录中的一个类_Ruby On Rails_Delayed Job - Fatal编程技术网

Ruby on rails 控制器中未初始化的常量--常量是我的lib目录中的一个类

Ruby on rails 控制器中未初始化的常量--常量是我的lib目录中的一个类,ruby-on-rails,delayed-job,Ruby On Rails,Delayed Job,我试图使用delayed::job gem来延迟消息的发送,当我尝试运行代码时,会出现错误: 未初始化的常量提醒控制器::提醒稍后 控制器中的代码是: require 'delayed_job_active_record' require 'delayed_job' class RemindersController < ApplicationController def index end def new @reminder = Reminder.new e

我试图使用delayed::job gem来延迟消息的发送,当我尝试运行代码时,会出现错误:

未初始化的常量提醒控制器::提醒稍后

控制器中的代码是:

require 'delayed_job_active_record'
require 'delayed_job'

class RemindersController < ApplicationController

  def index
  end

  def new
    @reminder = Reminder.new
  end

  def create
    @reminder = Reminder.create(reminder_params)
    @reminder.user = current_user
    @reminder.save
    Delayed::Job.enque(RemindLater.new(@reminder.id), 0, @reminder.time) 
    redirect_to reminders_path
  end



  private
  def reminder_params
    params.fetch(:reminder, {}).permit(:text, :phone_number, :time, :picture, :favorite)
  end

end
需要“延迟的作业活动记录”
需要“延迟工作”
类提醒控制器<应用程序控制器
def索引
结束
def新
@提醒=提醒。新
结束
def创建
@提醒=提醒。创建(提醒参数)
@remention.user=当前用户
@提醒。保存
延迟::Job.enque(remendLater.new(@remender.id),0,@remender.time)
重定向到提醒路径
结束
私有的
def提醒_参数
获取(:提醒,{}).permit(:文本,:电话号码,:时间,:图片,:收藏夹)
结束
结束
在my/lib/membrand_later.rb中,我有

class RemindLater < Struct.new(:reminder_id)

    def perform
        Reminder.send_text_message(reminder_id)
    end

end
类提醒以后

有人知道我为什么会犯这个错误吗?谢谢

确保已将lib目录添加到config/application.rb中的
自动加载路径中:


config.autoload\u如果将
remendLater
更改为
::remendLater
这有什么作用?我收到错误“uninitialized constant remendLater”是的,因此它不会自动加载。您需要在config/initializers中创建一个初始值设定项,或者将路径放入
config.autoload\u paths
config.autoload_paths << Rails.root.join('lib')