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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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 sidekiq和rails截断辅助对象_Ruby On Rails_Ruby_Ruby On Rails 4_Sidekiq_Truncate - Fatal编程技术网

Ruby on rails sidekiq和rails截断辅助对象

Ruby on rails sidekiq和rails截断辅助对象,ruby-on-rails,ruby,ruby-on-rails-4,sidekiq,truncate,Ruby On Rails,Ruby,Ruby On Rails 4,Sidekiq,Truncate,我在试着使用Sidekiq的内部。在Sidekiq之外,一切都很好,但在Sidekiq内部,当我尝试处理它给我的工作时: NoMethodError: undefined method `each_byte' for nil:NilClass 这是因为Sidekiq包含自己的截断方法: 问题是,与Rails助手相比,它太简单了,我需要能够截断单词而不是字符。因此,我试图明确地使用该方法: content = ActionView::Helpers::TextHelper.truncate(c

我在试着使用Sidekiq的内部。在Sidekiq之外,一切都很好,但在Sidekiq内部,当我尝试处理它给我的工作时:

NoMethodError: undefined method `each_byte' for nil:NilClass
这是因为Sidekiq包含自己的截断方法:

问题是,与Rails助手相比,它太简单了,我需要能够截断单词而不是字符。因此,我试图明确地使用该方法:

content = ActionView::Helpers::TextHelper.truncate(content.gsub(/\n/, ''), :length => 126, :separator => ' ', :omission => '', :escape => false)
但这仍然给了我和以前一样的错误

此外,我还尝试将助手包括在类的顶部

include ActionView::Helpers::TextHelper
但这似乎没有什么区别。知道如何在Sidekiq中使用Rails截断方法吗


谢谢,

只需通过GitHub上的链接打开源代码

def truncate(text, options = {}, &block)
  if text
    length  = options.fetch(:length, 30)

    content = text.truncate(length, options) // <--
    content = options[:escape] == false ? content.html_safe : ERB::Util.html_escape(content)
    content << capture(&block) if block_given? && text.length > length
    content
  end
end
def truncate(文本,选项={},&block)
如果文本
长度=选项。获取(:长度,30)
content=text.truncate(长度、选项)//