web-dev-qa-db-ja.com

ペーパークリップ:Railsコンソールに画像を保存する方法は?

ローカルイメージをRailsコンソールに保存してみました。

ローカルストレージに多くの写真があるので(クローラーを使用して大量の写真をダウンロードします)、Paperclipを使用してサムネイルなどの画像処理を実行できるように、それらをデータベースに保存します。Webページを使用して新しい画像を1つずつデータベースに保存すると、多くの時間がかかります。だから私はRailsコンソール(いくつかのコード)で、データベースに画像を一括保存できる方法を見つけたいと思っています。

36
mlzboy

@andreaの答えをさらに明確にするには:

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

したがって、モデルがImageと呼ばれ、Paperclipフィールドがデータの場合:

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

54
ZiggyTheHamster

これがモデルの場合:

class User < ActiveRecord::Base
  has_attached_file :avatar
end

次に、コンソールから次のように動作するはずです。

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

私はそれがあなたが望むものであるかどうかわかりません...しかし、コンソールからペーパークリップ資産を保存するにはFileインスタンスを使用するだけです。 a.e.

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

遅い答えですが、うまくいけば他の人にもうまくいくでしょう。含める必要があります。

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

1
user3253756