2

更新:実際、Haml は既にこれを自動的に行っています! link_toただし、 Haml タグではなく、ヘルパー内にハッシュがあり、それに気づきませんでした。愚かな私!したがって、質問はほとんど無効です。

Haml を使用すると、ブール値の HTML 属性を非常に簡単にレンダリングできます。

%input{checked: @boolean}

偽の場合、またはそうでない<input>場合は単純にレンダリングします。@boolean<input checked>

Haml を使用すると、データ属性のレンダリングも簡単になります。

%a{data: { is_special: false } }

レンダリング: <a data-is-special="false">.

data-is-specialこのカスタム属性をブール値として解釈するように Haml に依頼する方法はありますか? 偽の値が割り当てられている場合は存在しないようにし、真実が割り当てられている場合は存在するようにしたいと思います。

4

1 に答える 1

1

括弧内のコードは通常の ruby​​ コードなので、このタスクを ruby​​ で実行できれば、自分で解決できます。私はそのようなものを思いついた:

def remove_false(hsh)
  Hash[hsh.each_pair.select {|key, value| value}]
end

{data: remove_false(is_special: false)} #=> {:data => {}}

このソリューションは、単一のハッシュで特別かつ通常に扱いたいキーを組み合わせた場合、うまく機能しません。

于 2012-11-23T10:38:48.193 に答える