возвращая изображение с response_to - PullRequest
0 голосов
/ 14 октября 2010

Как вернуть изображение внутри блока respond_to do |format|?

У меня уже есть изображение, полностью собранное (то есть без уродливой сборки из блогов) и по определенному URL (потому что оно находится в общей папке), мне просто нужно иметь возможность вернуть это изображение для определенного другого URLquery.

Например, изображение находится в

public/cars/userid/car_id/random_name.JPG

, и я хочу иметь возможность обслуживать это изображение, когда пользователь переходит на

http://mywebsite.com/car_id.JPG

, потому чтоЗапрещается, чтобы пользователь знал userid и random_name.У меня есть URL public/cars/userid/car_id/random_name.JPG уже как @car.public_filename, потому что @car это attachment_fu объект.

Ответы [ 3 ]

1 голос
/ 14 октября 2010

Вы также можете написать небольшое промежуточное программное обеспечение Metal, чтобы перенаправить весь URL /car_id.JPG в реальный файл:

#app/metal/serve_car.rb
# Allow the metal piece to run in isolation
require(File.dirname(__FILE__) + "/../../config/environment") unless defined?(Rails)

class ServeCar
  def self.call(env)
    if env["PATH_INFO"] =~ /^\/car_(\d+).JPG$/
      path = Car.find($1).public_filename
      [302, {"Content-Type" => "text/html", "Location" => path}, ["You are being redirected"]]
    else
      [404, {"Content-Type" => "text/html"}, ["Not Found"]]
    end
  end
end
1 голос
/ 14 октября 2010

Вы можете перенаправить браузер на изображение:

redirect_to @car.public_filename
0 голосов
/ 14 октября 2010

Если вы хотите использовать другой mime-тип в respond_to, вы можете добавить его в config/initializers/mime_types.rb. Вот пример:

Mime::Type.register "text/richtext", :rtf
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...