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_downsub_drop_downclassli"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。この質問は、それを行う方法についての私の最初のアイデアでした。それが不可能な場合は、別の方法を使用した解決策が欲しいです.