キャリアウェーブで画像をアップロードするのにcarrierwaveを使用しています。これは私のuploader
クラスです。NoMethodError(nil:NilClassの未定義のメソッドID):CarrierWaveモデル
class ProfilePictureUploader < CarrierWave::Uploader::Base
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
私は私のmodel
でmount_uploader :avatar , ProfilePictureUploader
を使用してないです。
当然model
インスタンス:代わりに、私は私のモデルに
uploader = ProfilePictureUploader.new
uploader.store!(file)
self.image = uploader.url
self.save
しかし、これは私に
NoMethodError(NilClass未定義のメソッドはnilのための `のIDを」)というエラーを与えているが、これを使用します
ProfilePictureUploader
には存在しません。したがってstore_dir
メソッドはmodel.id
にアクセスできません。どのように私はこの流れで同様のディレクトリ構造を得ることができます。これはthis problemの複製ではありません。私の場合、の属性は
uploader
ではありません。
[Carrierwave:ファイル名/ストアの\ _dirでファイルハッシュとモデルID]の可能な重複(http://stackoverflow.com/質問/ 18460686/carrierwave-file-hash-and-model-id-in-filename-store-dir) –
これはこの複製ではありませんhttp://stackoverflow.com/questions/18460686/carrierwave-file-hash- and-model-id-in-filename-store-dir。私にとっては、アップローダーのモデル属性は利用できません。 – raj
はい、そうです。 –