2016-04-06 8 views
0

я использую для загрузки файлов жемчужины стрекозаКак получить правильное изображение по умолчанию, используя gem dragonfly?

У меня есть фото модели:

class Photo < ApplicationRecord 
    dragonfly_accessor :avatar do 
     default 'public/avatar.png'  
    end 
................................ 
end 

Когда я называю pry(#<#<Class:0x007f83508fb8f0>>)> @photo.avatar.url

я получаю

=> "/media/W1siZmYiLCJwdWJsaWMvYXZhdGFyLnBuZyJdXQ/avatar.png?sha=338938a0ea07d56b" 

Настройки файла стрекозы.

dragonfly.rb

require 'dragonfly' 

# Configure 
Dragonfly.app.configure do 
    plugin :imagemagick 

    secret "7c510e8ed95f9929f09981ef5f42ffc75034703184575044d2835ebbbd2a350b" 

    url_format "/media/:job/:name" 

    datastore :file, 
    root_path: Rails.root.join('public/system/dragonfly', Rails.env), 
    server_root: Rails.root.join('public') 
end 

# Logger 
Dragonfly.logger = Rails.logger 

# Mount as middleware 
Rails.application.middleware.use Dragonfly::Middleware 

# Add model functionality 
if defined?(ActiveRecord::Base) 
    ActiveRecord::Base.extend Dragonfly::Model 
    ActiveRecord::Base.extend Dragonfly::Model::Validations 
end 

мне нужен путь изображение для вставки в IMAGE_TAG. Как я могу получить правильный путь .../public/avatar.png?

ответ

2

Я основал решение:

dragonfly_accessor :avatar do 
     default Rails.root.join('public', 'images', 'default', 'avatar.png')  
    end 
1

Вы должны использовать remote_url instread из URL, чтобы получить полный путь как

@photo.avatar.remote_url 

Если вы хотите использовать загруженное изображение в теге изображения, то вы можете напрямую использовать

image_tag(@photo.avatar.url) 
+0

Можете ли вы писать настройки в dragonfly.rb файле? Но зачем нужен фактический путь, потому что @ photo.avatar.url правильно установит изображение. – Sukanta

+0

Но вы можете использовать вышеуказанный путь, например image_tag (@ photo.avatar.url) напрямую – Sukanta

+0

Что такое ошибка? – Sukanta

1

Попробуйте это

img = Dragonfly[:images].fetch_file(File.join(Rails.root, 'public', 'toekomst', 'images', 'sample.png')) 

см эту ссылку (http://markevans.github.io/dragonfly/rails/)

+0

Как я добавляю свой путь public/avatar.png? –

+0

Просто добавьте свое изображение в этот путь 'assests/images' – JohnPaul

+0

Я добавил img = Dragonfly.app (: images) .fetch_file (File.join (Rails.root, 'public', 'toekomst', 'images', 'avatar .png ')) dragonfly_accessor: avatar do default img #' public/avatar.png ' end Dont display: http://prntscr.com/aorxog. Изображение в активах/изображениях –

 Смежные вопросы

  • Нет связанных вопросов^_^