Rails - как найти URL домена в макете - PullRequest
7 голосов
/ 23 марта 2012

У меня было request.env['http_host'], работающее на локальном хосте, но это вызывает ошибку при ссылке на страницу макета на heroku.

Этот запрос работает в представлении и отображает правильный базовый URL, но вызывает ошибку, когда я перемещаю код в макет. Примечание. Я использую это для создания абсолютных URL-адресов для изображений в HTML-письмах.

  <%= "#{request.env['HTTP_HOST']}/assets/email_header_image.png" %> 
  <%= image_tag "#{request.env['HTTP_HOST']}/assets/email_header_image.png" %>

получена ошибка:

ActionView::Template::Error (undefined method `env' for nil:NilClass):

Ответы [ 2 ]

15 голосов
/ 23 марта 2012

Если вы хотите хост без порта, просто используйте:

request.host

edit: Упс, я только что заметил, что вы используете код в представлении. Я не знаю, видно ли оно там, я использовал его только в контроллерах, но это довольно просто преодолеть, установив переменную экземпляра.

5 голосов
/ 24 марта 2012
  1. В вашем контроллере установите переменную экземпляра, равную хосту:
    • @host = request.host
  2. На ваш взгляд, обратитесь к переменной экземпляра с помощью
    • <%= @host %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...