我有一个视图辅助方法,它采用一个块。渲染该块没有问题,但是当我尝试在渲染块后添加内容时,它不起作用。
content_for
上面的代码只会生成块并跳过其他内容。我还尝试过:capture
,concat
,with_output_buffer
和<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.commands">
<command
categoryId="fr.comp.app.category"
defaultHandler="fr.comp.common.styles.impl.DefaultStyle"
id="fr.comp.common.styles.defaultStyle"
name="Default Style">
<state
class="org.eclipse.ui.handlers.RadioState"
id="org.eclipse.ui.commands.radioState">
</state>
</command>
<command
categoryId="fr.comp.app.category"
defaultHandler="fr.comp.common.styles.impl.SepiaStyle"
id="fr.comp.common.styles.SepiaStyle"
name="Print Style">
<state
class="org.eclipse.ui.handlers.RadioState"
id="org.eclipse.ui.commands.radioState">
</state>
</command>
</extension>
<extension
point="org.eclipse.ui.bindings">
<key
commandId="fr.comp.common.styles.defaultStyle"
contextId="org.eclipse.ui.contexts.window"
schemeId="fr.comp.app.scheme"
sequence="F1">
</key>
<key
commandId="fr.comp.common.styles.SepiaStyle"
contextId="org.eclipse.ui.contexts.window"
schemeId="fr.comp.app.scheme"
sequence="F6">
</key>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="toolbar:org.eclipse.ui.main.toolbar">
<toolbar
id="fr.comp.app.style.toolbar">
<command
commandId="fr.comp.common.styles.defaultStyle"
icon="resources/default.png"
style="radio">
</command>
<command
commandId="fr.comp.common.styles.SepiaStyle"
icon="resources/sepia.png"
style="radio">
</command>
</toolbar>
</menuContribution>
</extension>
</plugin>
但没有成功。正如您所注意到的,我并不真正理解这些方法是如何工作的......但我的问题是:如何在呈现给定块之后呈现某些内容。谢谢!
答案 0 :(得分:2)
如果查看content_tag定义,您会看到它只输出一个标记,一个类和一个内容。您正试图将其删除多个内容,因此您需要加入这些内容。
def validation_div(&block)
content = capture(&block)
content_tag :div do
content + content_tag(:div , "This content is never rendered!")
end
end