вопрос интервью рельсов - PullRequest
4 голосов
/ 20 июля 2010

Я получил этот вопрос в предыдущем интервью и не мог этого сделать, есть идеи? Что это возвращает? Где это будет использоваться?

module ApplicationHelper
 def show_flash
flash.map{|key, value| content_tag(:div, value, {:class => key})}
 end
end

Ответы [ 2 ]

4 голосов
/ 20 июля 2010

'flash' - это соглашение ruby-on-rails для временного хранения информации, сгенерированной в одном запросе (скажем, «неверное имя пользователя» или «сеанс не найден» или «спасибо за покупку у нас» или «корзина обновлена»)для визуализации в следующем представлении от клиента.

Flash является хеш-подобным объектом.

Метод .map для хеш-подобных объектов будет перебирать все элементы в хэше;в этом случае методу .map передается блок, который принимает два параметра (которые он называет key и value, потому что key может использоваться для поиска value из хеша).Блок использует помощник content_tag для вывода новых элементов <div> со значением из хэша и селекторного класса CSS key.

Так для такой вспышки: {:name => "sars", :food => "pizza"}

Он будет генерировать HTML примерно так: <div class="name">sars</div><div class="food">pizza</div>.

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

0 голосов
/ 20 июля 2010

модуль ApplicationHelper def show_flash flash . map {| key, value | content_tag (: div, value, {: class => key})}конецконец

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