Rubyでyieldブロック内の文字列を置き換えることは可能ですか? たとえば、誰かが持っている場合
drop_down "Dropdown" do
menu_item "Home", "/"
drop_down "Inner" do
menu_item "Inner Home", "/inner"
end
end
drop_down
他drop_down
のブロック内の呼び出しを呼び出しに変更するsub_drop_down
か、少なくとも特別なことをして、別のdrop_down
ブロック内にあることを知らせたいと思います。drop_down
これは、ブロック内の文字列を に置き換えることを意味しsub_drop_down
ます。
上記のコード サンプルは、
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Dropdown
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li class="active">
<a href="/">Home</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Inner
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="/inner">Inner Home</a>
</li>
</ul>
</li>
</ul>
</li>
しかし、2 番目のbebe を、もう一方の呼び出しを beingに変更することで提供できるようにしたいと考え<li class="dropdown">
ています。その呼び出しを変更する方法はありますか?<li class="dropdown-submenu">
drop_down
sub_drop_down
class
li
"dropdown-submenu"
私が持っている現在のsub_drop_down
方法は
def sub_drop_down(name)
content_tag :li, :class => "dropdown-submenu" do
drop_down_link(name) + drop_down_list {yield}
end
end
そして、sub_drop_down メソッドを追加すると、次のコードはいくらか機能します
drop_down "Dropdown" do
menu_item "Home", "/"
sub_drop_down "Inner" do
menu_item "Inner Home", "/inner"
end
end
sub_drop_down
しかし、ユーザーに代わりに入力を強制したくありませんdrop_down
。sub_drop_down
の代わりに呼ばれたいですdrop_down
。
このプロジェクトに新しい機能を追加しようとしています。drop_down
メソッドのソース コードは28 ~ 32 行目content_tag
:class
にありますが、変数を追加する方法がわかりdropdown-submenu
ませんdropdown
。この質問は、それを行う方法についての私の最初のアイデアでした。それが不可能な場合は、別の方法を使用した解決策が欲しいです.