Помощник по URL берет имя хоста из входящего запроса. Модель не нуждается в запросе на существование, поэтому вы не можете использовать помощники URL.
Одним из решений является передача имени хоста запроса помощнику по URL-адресу миниатюр.
def thumbnail_url(hostname)
self.photo.url(:thumb, :host => hostname)
end
Затем вызовите его из ваших контроллеров / представлений, как это
photo.thumbnail_url(request.host)
Оказывается, что на самом деле нет надежного способа получить имя хоста сервера. Если пользователь добавляет запись в свой файл / etc / hosts, он может получить доступ к серверу с любым именем хоста. Если вы полагаетесь на имя хоста входящего запроса, его можно использовать для разрыва миниатюр.
Из-за этого я обычно жестко кодирую имя хоста моего сайта в инициализаторе. например поместите это в config / initializers / hostname.rb
HOSTNAME = 'whatever'
- редактировать -
Это выглядит как в rails 3, вы должны предоставить параметр: only_path => false, чтобы заставить это работать. Вот пример из консоли:
>> app.clients_path :host => 'google.com', :only_path => false
=> "http://google.com/clients"