1

私は HAML を初めて使用し、古いコーダー ロジックを理解できません。HAML テンプレートの UI でラベルがどこに来るかを特定しようとしています。これは私のコードのメイン ビュー ページです。

  = render :partial => "application/select_search", :locals => {:n => "benefit_stream_inf", :options => @dynamic_benefit_options, :default => true}

メインプラージュでレンダリングする select_search ページ

label = local_assigns[:l] ? l : t(n, :scope => local_assigns[:s] ? s : :models)

今、私はレンダリングでラベルを与えません。その後、どのようにラベルが生成されますか

誰かがこのラベル割り当てコードを説明できますか

label = local_assigns[:l] ? l : t(n, :scope => local_assigns[:s] ? s : :models)
4

2 に答える 2

0

最後に、私は私の答えを得ました

label = local_assigns[:l] ? l : t(n, :scope => local_assigns[:s] ? s : :models)

local_assigns[:l] ラベルを直接与えるために使用されるローカル変数です

t(n, :scope => local_assigns[:s] ? s : :models)これは、パスキーとスコープを含む翻訳ファイルのラベル値を取得するために使用されます

翻訳ファイルは config/local/en.yml に置かれます

于 2013-09-04T05:36:44.040 に答える
0

下の文を見たら

label = local_assigns[:l] ? l : t(n, :scope => local_assigns[:s] ? s : :models)

使用される演算子は三項演算子です

ラベルが"l"またはt(n, :scope => local_assigns[:s] ? s : :models)

これを見ることで

  = render :partial => "application/select_search", :locals => {:n => "benefit_stream_inf", :options => @dynamic_benefit_options, :default => true}

local_assigns[:l]will を返すfalseということは、それが 2 番目のオプション、つまり に分類されることを意味すると言えますt(n, :scope => local_assigns[:s] ? s : :models)

t(n, :scope => local_assigns[:s] ? s : :models)

上記のステートメント n = "benefit_stream_inf" では、scopeこれに三項演算子があり、最終的に変数が割り当てられることを意味しlocal_assigns[:s]ますfalselabelt("benefit_stream_inf", :scope => :models)

modelsプロジェクトハッシュに en.yml が表示され、この値が含まれ'benefit_stream_inf' keyているvalue 場合は、ラベル変数に割り当てられます。国際化の詳細については、このリンクを参照してください。

役立つことを願っています。

于 2013-09-04T05:42:48.410 に答える