0

こんにちは、このチュートリアルを使用して、画像のランダムな名前を 取得しますhttp://trevorturk.com/2009/03/22/randomize-filename-in-paperclip/

問題は、このエラーが発生することです。

   NameError in RegistrationsController#create

undefined local variable or method `image_file_name' for #<Player:0xbd66ae0>
Rails.root: /srv/www/myfootballproject.com/mfp

Application Trace | Framework Trace | Full Trace
app/models/player.rb:143:in `randomize_file_name'
app/models/user.rb:29:in `is_a_player?'

これが問題の原因となっているモデルの部分です

これは、モデルの player.rb の「クラス Player」内の部分図です。

has_attached_file :avatar, :styles => { :profile => "300x300", :thumb => "100x100#"},
    :url  => "/assets/people/:id/:style/:basename.:extension",
    :path => ":rails_root/public/assets/people/:id/:style/:basename.:extension"

    before_create :randomize_file_name

    validates_attachment_size         :avatar, :less_than    => 2.megabytes # Solo aceptar imágenes menores a 2 Mb.
    validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif']

  private

    def randomize_file_name
      extension = File.extname(image_file_name).downcase
      self.image.instance_write(:file_name, "#{ActiveSupport::SecureRandom.hex(16)}#{extension}")
    end


    def defeated?
      t = Time.now - created_at

      mm, ss = t.divmod(60)
      hh, mm = mm.divmod(60)
      dd, hh = hh.divmod(24)

      dd > 180 ? true : false
    end
4

1 に答える 1

3

これをお探しの方へ。頭を壊さないでください XD これは Paperclip で既に行われています

has_attached_file :avatar, :styles => { :profile => "300x300", :thumb => "100x100#"},
    :url  => "/assets/people/:id/:style/:basename.:extension",
    :path => ":rails_root/public/assets/people/:id/:style/:hash.:extension",
    :hash_secret => "longSecretString"

すべての情報はこちら

https://github.com/thoughtbot/paperclip#uri-難読化

于 2013-09-18T02:26:58.320 に答える