2015-08-29 1 views
0

Приложение Ruby on rails, которое создает динамическое изображение, отображается только на стадии разработки, но не на производстве. Вот контроллер:RoR: Нажимаем на производство и не можем получить доступ к изображению

def show 
    require 'gruff' 
    g = Gruff::Pie.new 
    g.title = "Percentages of Fees" 
    g.data 'Management Fees', mf_percent 
    g.data 'Other Fees', of_percent 
    file_name = 'app/assets/images/pie_charts/portfolio_' + @portfolio.id.to_s + '.png' 
    g.write(file_name) 
end 

А вот вид:

<%= file_name = 'pie_charts/portfolio_' + @portfolio.id.to_s + '.png' %> 
<%= image_tag(file_name, height: 300) %> 

Сейчас она работает над развитием, но не в производстве.

Производство HTML:

pie_charts/portfolio_3.png 
<img height="300" src="/images/pie_charts/portfolio_3.png" alt="Portfolio 3"> 

Разработка HTML

pie_charts/portfolio_3.png 
<img height="300" src="/assets/pie_charts/portfolio_3-8ea1d8e07ae40e233bd7366c24bc657795b6fba09095335ca0211cef72a07d3a.png" alt="Portfolio 3 8ea1d8e07ae40e233bd7366c24bc657795b6fba09095335ca0211cef72a07d3a"> 

попытался изменить file_name к:

file_name = "public/images/pie_charts/portfolio_" + @portfolio.id.to_s + '.png' 

и получил эту ошибку:

F, [2015-08-29T02:09:19.026907 #92497] FATAL -- : 
Magick::ImageMagickError (WriteBlob Failed `public/images/pie_charts/portfolio_3.png' @ error/png.c/MagickPNGErrorHandler/1630): 
app/controllers/portfolios_controller.rb:42:in `show' 

ответ

1

Для производства вы должны записать его в папку public.

def show 
    require 'gruff' 
    g = Gruff::Pie.new 
    g.title = "Percentages of Fees" 
    g.data 'Management Fees', mf_percent 
    g.data 'Other Fees', of_percent 
    file_name = "#{Rails.root}/public/images/pie_charts/portfolio_" + @portfolio.id.to_s + '.png' 
    g.write(file_name) 
end 

В производственной среде основная папка активов для Rails является общедоступной. Все средства от app/assets и vendor/assets скомпилированные для производства помещенного в public/assets

+0

Im имея ошибка сейчас ... 'Magick :: ImageMagickError (WriteBlob Failed' Любые идеи? –

+0

показать полный след об ошибке, пожалуйста, и попытаться опустить' Rails. root' from '" public/images/pie_charts/ portfolio_ "' –

+0

обновил вопрос –

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