Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 未初始化常量Blitline Gem_Ruby On Rails_Ruby_Ruby On Rails 4_Blitline - Fatal编程技术网

Ruby on rails 未初始化常量Blitline Gem

Ruby on rails 未初始化常量Blitline Gem,ruby-on-rails,ruby,ruby-on-rails-4,blitline,Ruby On Rails,Ruby,Ruby On Rails 4,Blitline,我在使用Blitline处理图像时遇到问题。我已经将gem添加到我的gem文件中,等等。。。但在rails控制台中,当我尝试测试它时,会出现以下错误: Loading development environment (Rails 4.0.1) 2.0.0p353 :001 > blitline_service = Blitline.new NameError: uninitialized constant Blitline 这与我在应用程序中尝试通过模型使用blitline时遇到的错误相

我在使用Blitline处理图像时遇到问题。我已经将gem添加到我的gem文件中,等等。。。但在rails控制台中,当我尝试测试它时,会出现以下错误:

Loading development environment (Rails 4.0.1)
2.0.0p353 :001 > blitline_service = Blitline.new
NameError: uninitialized constant Blitline
这与我在应用程序中尝试通过模型使用blitline时遇到的错误相同

NameError in DrawingsController#create
uninitialized constant Drawing::Blitline
完整型号代码

class Drawing < ActiveRecord::Base

    scope :published, -> { where(published: true) }

  attr_accessible :image, :title, :user_id, :week_id, :key, :published, :safe_for_kids

    #=mount_uploader :image, DrawingUploader

  belongs_to :week
  belongs_to :user

    def image_name
        File.basename(image.path || image.filename) if image
    end


    before_save :run_blitline_job

    private

    def run_blitline_job
      filename = File.basename(image, '.*')
      # self.title ||= sanitize_filename(filename).titleize # set default name based on filename

      filename_with_ext = File.basename(image)
      key = "uploads/thumbnails/#{SecureRandom.hex}/#{filename_with_ext}"

      bucket = ENV["S3_BUCKET"]

      images = blitline_job(image, bucket, key)
      self.image = images['results'][0]['images'][0]['s3_url'] # extracts s3_url from blitline's ruby hashes
    end

    def blitline_job(original_image, bucket, key)
      blitline_service = Blitline.new
      blitline_service.add_job_via_hash({ # New add job method in Blitline gem 2.0.1. Messy.
        "application_id" => ENV['BLITLINE_APPLICATION_ID'],
        "src" => original_image,
        "functions" => [{
            "name"   => "watermark", # watermark the image
            "params" => { "text" => "oh hai" },
            "functions" => [{
                "name"   => "resize_to_fill", # resize after watermark
                "params" => { "width" => 200, "height" => 200 },
                "save"   => {
                    "image_identifier" => "MY_CLIENT_ID", # Not sure what this is for
                    "s3_destination"   => { "key" => key, "bucket" => bucket } # push to your S3 bucket
                }
            }]
        }]
      })
      return blitline_service.post_jobs
    end

end
类绘图{where(published:true)} 属性可访问:图像,:标题,:用户id,:周id,:键,:发布,:儿童安全 #=挂载上传器:图像、绘图上传器 属于:星期 属于:用户 def图像_名称 File.basename(image.path | | image.filename)如果是image 结束 保存前:运行\u blitline\u作业 私有的 def run_blitline_作业 filename=File.basename(图像'.*') #self.title | |=清理_文件名(filename)。titleize#根据文件名设置默认名称 filename_,带_ext=File.basename(图像) key=“uploads/thumbnails/#{SecureRandom.hex}/#{filename_with_ext}” 桶=环境[“S3_桶”] 图像=blitline_作业(图像、存储桶、键) self.image=images['results'][0]['images'][0]['s3_url'].#从blitline的ruby哈希中提取s3_url 结束 def blitline_作业(原始图像、存储桶、密钥) blitline_服务=blitline.new blitline_服务。通过_散列({#blitline gem 2.0.1.Messy中的新添加作业方法)添加_作业。 “应用程序id”=>ENV['BLITLINE\u应用程序id'], “src”=>原始图像, “功能”=>[{ “名称”=>“水印”#为图像添加水印 “params”=>{“text”=>“oh hai”}, “功能”=>[{ “名称”=>“将大小调整为填充”,在水印后调整大小 “参数”=>{“宽度”=>200,“高度”=>200}, “保存”=>{ “image_identifier”=>“我的客户ID”#不确定这是干什么用的 “s3_destination”=>{“key”=>key,“bucket”=>bucket}#推到您的s3 bucket } }] }] }) 返回blitline_服务。发布_作业 结束 结束
感谢您的帮助……

我想您只是错过了一个要求:要求“闪电线”就是这样。我可以发誓在问这个问题之前我已经做过了,但显然不是。谢谢