Что означает = fl в хамле

Я унаследовал приложение, в котором есть этот haml для извлечения файла index.html.haml для "домашнего" контроллера.

= fl
- if logged_in?
  = render :partial => 'logged_in_home'
- else
  = render :partial => 'marketing_home'

Оператор if понятен, но что делает = fl? Я не могу найти это нигде в документации HAML или путем поиска в Google.

3 ответа

Решение

= fl не является встроенным методом хамла. Вы можете попытаться определить, определено ли оно в одном из следующих мест:

  • приложение / контроллеры / application_controller
  • приложение / хелперы / application_helper
  • приложение / хелперы / home_helper
  • любое другое приложение / помощники /*_ вспомогательный файл
  • библиотечные коды (lib/*)
  • коды плагинов / драгоценных камней

Я понятия не имею что fl находится в вашем приложении, как это, вероятно, определяется вашим приложением или одним из плагинов.

Но я расскажу вам магический трюк, чтобы понять это. На самом деле это очень просто:

  • Воткни отладчик прямо перед ним;)

Просто делать

= require 'ruby-debug';debugger;fl

И обновите свою страницу. Сервер должен остановиться на этой линии. использование s войти в функцию 'fl', и вы точно узнаете, где она находится в 99,99% случаев (*)

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

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

Другие вопросы по тегам