Ruby on rails Rails Sidekiq设置的循环依赖性

Ruby on rails Rails Sidekiq设置的循环依赖性,ruby-on-rails,twilio,sidekiq,worker,Ruby On Rails,Twilio,Sidekiq,Worker,Sidekiq和Redis都在本地运行。如果我只使用put语句,Sidekiq将处理作业。如果我将Sidekiq从等式中去掉,rake任务将通过模型发送文本 我有更复杂的任务要设置,所以我想让Sidekiq开始应用程序。我正在学习这个教程 当我在Sidekiq中手动触发rake任务时,我一直会遇到这个错误 2014-11-27T03:55:40.906Z 36691 TID-ouue3wz8o警告:自动加载常量文本消息时检测到循环依赖关系 相关文件信息: gem 'rails', '4.1.1

Sidekiq和Redis都在本地运行。如果我只使用put语句,Sidekiq将处理作业。如果我将Sidekiq从等式中去掉,rake任务将通过模型发送文本

我有更复杂的任务要设置,所以我想让Sidekiq开始应用程序。我正在学习这个教程

当我在Sidekiq中手动触发rake任务时,我一直会遇到这个错误

2014-11-27T03:55:40.906Z 36691 TID-ouue3wz8o警告:自动加载常量文本消息时检测到循环依赖关系

相关文件信息:

 gem 'rails', '4.1.1' 

 gem 'sidekiq', '3.2.5'
这是调用Sidekiq worker的rake任务(send_scheduled_text.rake):

这是我的send_text_worker.rb

class SendTextWorker
  include Sidekiq::Worker

  def perform(text_message_id)
    text = Text_Message.find(text_message_id)
    SendText.new(text).send_text_message
  end
end
下面是它正在调用的text_message.rb模型:

require 'twilio-ruby'
require 'date'

class TextMessage < ActiveRecord::Base

 belongs_to :client, dependent: :destroy
 belongs_to :step, dependent: :destroy

 before_save :grab_phone

  def grab_phone
    self.phone = step.goal.action_plan.client.phone
  end

  def send_text_message(message)

    twilio_sid = ENV["TWILIO_ACCT_SID"]
    twilio_token = ENV["TWILIO_AUTH_TOKEN"]
    twilio_phone_number = ENV["TWILIO_PHONE_NUMBER"]

    phone = step.goal.action_plan.client.phone

    @twilio_client = Twilio::REST::Client.new(twilio_sid, twilio_token)

    @twilio_client.account.sms.messages.create(
      :from => "+1#{twilio_phone_number}",
      :to => phone,
      :body => message)

    self.sentstatus = true
    self.save!
  end  
end
需要“twilio ruby”
需要“日期”
类TextMessage“+1{twilio\u电话号码}”,
:to=>电话,
:body=>消息)
self.status=true
自救!
结束
结束

感谢所有看到我在短信上出现循环错误的人

即使类的文件是snake_大小写,类名本身也应该是CamelCase


Text\u Message.find(Text\u Message\u id)
替换为
TextMessage.find(Text\u Message\u id)
看起来像
Text\u Message
可能是拼写错误的
TextMessage
。非常感谢您的帮助。现在我有一个新的错误,我正试图找出:'2014-11-27T15:58:22.370Z 40881 TID-oxu8xcqgs警告:{“重试”=>true,“队列”=>“默认”,“类”=>“SendTextWorker”,“args”=>[10],“jid”=>“22c1b60328131698d65eb1af”,“排队”=>1417103902.283438,“错误消息”=>“未初始化常量SendTextWorker::SendText”,“error\u class”=>“NameError”,“failed\u at”=>1417103902.367975,“retry\u count”=>0}”而不是
SendText.new(text)。send\u text\u message
您应该使用
TextMessage.new(text)最后一个问题:'2014-11-27T16:15:28.779Z 42097 TID-oxkvs9kr8警告:{“重试”=>true,“队列”=>“默认”,“类”=>“发送文本工作者”,“参数”=>[10],“jid”=>“87A3640DD4F59ACE3165408”,“排队”=>1417104751.387465,“错误消息”=>分配属性时,必须将散列作为参数传递。”、“error\u class”=>“ArgumentError”、“failed\u at”=>1417104751.473124、“retry\u count”=>3、“retried\u at”=>1417104928.778513}初始化
TextMessage
TextMessage.new(text)时出现问题.send_text_message
不正确,因为参数
text
应该传递到其他地方:)非常感谢。干杯!
require 'twilio-ruby'
require 'date'

class TextMessage < ActiveRecord::Base

 belongs_to :client, dependent: :destroy
 belongs_to :step, dependent: :destroy

 before_save :grab_phone

  def grab_phone
    self.phone = step.goal.action_plan.client.phone
  end

  def send_text_message(message)

    twilio_sid = ENV["TWILIO_ACCT_SID"]
    twilio_token = ENV["TWILIO_AUTH_TOKEN"]
    twilio_phone_number = ENV["TWILIO_PHONE_NUMBER"]

    phone = step.goal.action_plan.client.phone

    @twilio_client = Twilio::REST::Client.new(twilio_sid, twilio_token)

    @twilio_client.account.sms.messages.create(
      :from => "+1#{twilio_phone_number}",
      :to => phone,
      :body => message)

    self.sentstatus = true
    self.save!
  end  
end