Как мне получить доступ к переменной rails, которая доступна только для частичного? - PullRequest
0 голосов
/ 28 ноября 2010

Извините, я новичок в Ruby on Rails. Я очень озадачен общей картиной, поэтому мы будем признательны за вашу помощь.

В моем application.html.haml я вызываю = yield, который берет выходные данные из ranked.html.haml. Теперь у последнего есть доступ к переменной рельсов @featured_image.

Я хочу получить переменную @featured_image этой рельсы при загрузке страницы, чтобы сразу после этого можно было предварительно загрузить это изображение и изображения с идентификаторами.

Но мой window.onload = function () в application.html.haml не имеет доступа к @featured_image ...

как мне это сделать?

Спасибо !!

Ответы [ 2 ]

1 голос
/ 28 ноября 2010

Как заметил Крис Хилд, переменная @featured_image является переменной экземпляра на контроллере, и у вас есть доступ к ней в ваших представлениях. Чтобы использовать его из javascript, вам в основном нужно будет записать его в свой макет или частично где-нибудь в блоке скрипта, например, (это erb, а не haml):

<script>
  var featured_image="<%= @featured_image %>";
</script>

Очевидно, что вы захотите добавить в проверку на значение nil значение @featured_image и обработать его способом, подходящим для вашего приложения, или иным образом убедиться, что оно всегда установлено на что-то. Предложение Криса использовать помощника также хорошо, но я не был уверен, что было очевидно, что помощник должен будет сделать для новичка.

1 голос
/ 28 ноября 2010

Если @featured_image установлено из контроллера, оно будет видно для всех представлений в конвейере рендеринга.Однако вы не всегда можете предположить, что он видим, поскольку макет потенциально отображает много страниц, поэтому вы должны проверить, что он есть, прежде чем пытаться использовать его из макета.

I 'Я рекомендую использовать вспомогательный метод, чтобы убедиться, что он не равен нулю, а затем выписать правильную разметку.Вы также можете посмотреть на content_for, который позволяет пометить блоки разметки для визуализации в других частях макета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...