【问题标题】:Paperclip: How to store a picture in a Rails console?Paperclip:如何在 Rails 控制台中存储图片?
【发布时间】:2011-06-08 11:49:19
【问题描述】:

我尝试在 Rails 控制台中存储本地图像。

因为我的本地存储中有很多图片(我使用爬虫下载大量图片),我想将它们存储到数据库中,借助回形针来完成一些图像工作,例如缩略图等。 如果我使用网页将新图片一张一张保存到数据库中,会花费很多时间。所以我想在rails控制台(一些代码)中找到一种可以批量保存图片到数据库的方法。

【问题讨论】:

  • 我建议您花更多时间来处理您的问题,包括您尝试过的内容以及为什么要使用“控制台”来存储本地图像...您将获得更高的回复机会自己花更多的时间。

标签: ruby-on-rails ruby-on-rails-3 console paperclip


【解决方案1】:

进一步澄清@andrea 的回答:

YourPaperclippedModelHere.new(:your_paperclip_field => File.new(path, "r"))

因此,如果您的模型称为 Image 并且您的回形针字段是数据:

Image.new(:data => File.new(path_to_your_file, "r"))

【讨论】:

    【解决方案2】:

    如果这是模型:

    class User < ActiveRecord::Base
      has_attached_file :avatar
    end
    

    那么以下应该可以从控制台工作:

    >> User.create(:avatar => File.open('/path/to/image.jpg', 'rb'))
    

    【讨论】:

    【解决方案3】:

    我不知道这是否是你想要的......但是 从控制台保存回形针资产 您可以简单地使用 File 实例。 a.e.

    Image.new :data=>File.new("/path/to/image.jpg","r")
    

    【讨论】:

    • ruby-1.9.2-p0 > Image.new NameError: uninitialized constant Image from (irb):2 from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems /railties-3.0.1/lib/rails/commands/console.rb:44:in start' from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:8:in start' 来自 /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0。 1/lib/rails/commands.rb:23:in &lt;top (required)&gt;' from script/rails:6:in require' 来自 script/rails:6:in `
      '
    • 我尝试在 Rails 控制台中使用 Image.new,但它会引发类似上述的错误
    • 在这种情况下 File.new 不起作用,你应该试试这个Image.create(:data =&gt; File.open('/path/to/image.jpg', 'r'))
    • 对于未来的读者:Image 没有内置在 Ruby 或 Rails 中;它是一个必须像应用程序中的UserPost 一样定义的模型。 Image 这里被用作 ActiveRecord 模型的示例。
    【解决方案4】:

    迟到的答案,但希望它对其他人有用。 您需要包括在内。

    File.new("#{Rails.root}/public/images/default_avatar.png", "r")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 2016-04-16
      • 1970-01-01
      相关资源
      最近更新 更多