2011-02-03 8 views
1

"home"コントローラのindex.html.hamlファイルをプルするためにこのhamlを持つアプリケーションを継承しました。hamlビューで= flの意味

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

if文は明確ですが、= flは何ですか?私はhamlドキュメンテーションのどこにいても、それをグーグルで見つけることはできません。

+0

よくあるように見えません。あなたはhome_helperを見ましたか? –

+1

ローカル変数である –

答えて

2

= flは、組み込みのhamlメソッドではありません。あなたはそれが次の場所のいずれかで定義されたかどうかを確認するために試みることができる:

  • アプリ/コントローラ/ application_controller
  • アプリ/ヘルパー/ application_helper
  • アプリ/ヘルパー/ home_helper
  • 他のアプリ/ヘルパー/ * _ヘルパーファイル
  • ライブラリコード(LIB/*)
  • プラグイン/宝石コード
+0

thaks私は自分のapplication_helperでそれを見つけました。それは実際にフラッシュの通知のためのメソッドでした: –

+1

これは、メソッドと変数の名前を簡単に理解することを定義する重要性です; D( '= flash_notices'はあなたに質問を投稿させません) – PeterWong

0

私が推測するのは、それがローカル変数であるということです。特に、部分的に内部にある場合はそうです。ページを実行するとどうなりますか?部分の上には何が表示されますか?

0

flはアプリケーションまたはプラグインの1つで定義されている可能性があります。

しかし、私はあなたにそれを理解するための魔法を教えます。その実際には非常にシンプル:

  • スティックちょうどその前デバッガ;)

だけ

= require 'ruby-debug';debugger;fl 

を行うと、あなたのページを更新。サーバーはこの行で停止する必要があります。 「FL」を内部の機能をステップsを使用して、あなたは正確に見つけるれる場所であること

  • も例(*)の99.99%で、それはあまり助けにはなりません場合があるかもしれないとき、例えば、aについてメソッドは、ソースファイルと行を適切に設定しないで動的に定義されます。