2011-02-03 31 views
1

我已經繼承了一個具有此haml的應用程序,以便爲「主頁」控制器提取index.html.haml文件。haml視圖中的= fl表示

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

if語句很清楚,但是= fl是幹什麼的?我無法在haml文檔中找到任何地方或通過Google搜索。

+0

看起來不像什麼常見的東西,你看看home_helper嗎? – 2011-02-03 16:10:51

+1

它可能只是一個局部變量 – 2011-02-03 16:13:02

回答

2

= fl不是內置haml方法。你可以嘗試,看看它是否在下列任一位置的定義:

  • 應用程序/控制器/ application_controller
  • 應用程序/傭工/ application_helper
  • 應用程序/傭工/ home_helper
  • 任何其他應用程序/傭工/ * _幫手文件
  • 庫代碼(LIB/*)
  • 插件/寶石碼
0

我的猜測是它是一個局部變量,特別是如果你在局部變量中。當你運行頁面時會發生什麼?部分之上出現什麼?

0

我不知道你的應用程序中有什麼fl,因爲它可能是由你的應用程序或其中一個插件定義的。

但我會告訴你這個魔術來搞清楚。它其實很簡單:

  • 棒調試器之前它;)

只是做

= require 'ruby-debug';debugger;fl 

,並刷新頁面。服務器應該停在這一行。使用s步驟內「FL」功能,你會發現自己的精確位置是它的情況下(*)99.99%

  • 好,有可能是時候,它不會幫助不大的情況下,例如當一個方法是在沒有正確設置源文件和行的情況下動態定義的。