Что означает = fl в хамле - PullRequest
1 голос
/ 03 февраля 2011

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

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

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

Ответы [ 3 ]

2 голосов
/ 03 февраля 2011

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

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

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

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

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

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

= require 'ruby-debug';debugger;fl

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

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

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

...