我想要一个看起来像Log in with [FB]
的按钮,其中[FB]
是字体真棒图标。 (请注意,此图标出现在最后)。为此,这有效:
= form_tag my_path, :method => :post do
= button_tag do
Log in with
%i.icon-facebook
我想通过创建一个新的辅助方法来干掉它:
def button_to_with_icon(path, text, button_class, icon)
form_tag path, :method => :post do
button_tag(:class => button_class) do
text
content_tag :i, "" , :class => icon.to_sym
end
end
end
但是,text
参数不会在HTML中呈现。我该如何解决这个问题?
答案 0 :(得分:7)
button_tag
块将使用文本返回的内容。在这里,您隐式返回content_tag
并抛出文本。
您应该在concat
区块中使用content_tag
:
button_tag do
concat text
concat content_tag(:i, nil, :class => icon.to_sym)
end
答案 1 :(得分:0)
在您的代码中,text
的返回值只是浪费了。您必须同时返回content_tag
和text
:
def button_to_with_icon(path, text, button_class, icon)
form_tag path, :method => :post do
button_tag(:class => button_class) do
text + content_tag(:i, "" , :class => icon.to_sym)
end
end
end
ruby方法不是ERB: - )