任何人都可以在rails中描述content_tag的一些用例。我的意思是为什么我更喜欢它而不是简单的标签语法。比较content_tag(:div)over html div tags
答案 0 :(得分:1)
根据我的经验,我倾向于在辅助方法中使用content_tag
(在app/helpers
中)。 content_tag
往往很快就会变得笨拙(特别是在将它们嵌入w / blocks时),所以我只将它们用于更短的HTML帮助程序。
content_tag
非常适合动态创建内容。例如,这里有一个辅助方法,用于生成无序列表w / items
def ul(items = [], attributes = {}, &block)
content_tag :ul, attributes do
yield(items) if block_given?
[*items].map { |i| content_tag :li, i }.join.html_safe
end
end
这允许您执行
之类的操作ul ['first', 'second', 'third']
甚至传递阻止列表
ul do |l|
l << "first"
l << "second"
l << "third"
在此使用辅助方法而不是原始HTML使得此代码更具可重用性(DRY)并且还允许灵活性。
答案 1 :(得分:1)
当您想要动态生成HTML块时,标记助手非常有用。例如,请参阅我撰写的关于生成Twitter Bootstrap面包屑的帖子:http://www.nicolasgarnil.me/blog/2012/neat-breadcrumbs-with-some-ruby-magic/。
如果您正在编写静态标记,则应该坚持使用HTML标记。如果您不想包装逻辑来生成像面包屑,嵌套字段等html组件,请使用标记帮助程序。