我正在尝试使用content_tag方法在Ruby On Rails中构建一个html表。
示例:
@template.content_tag(:tr, @template.content_tag(:td, options[:argument0]))
这应该呈现给
<tr><td>content of argument0</td></tr>
我需要的是像
<tr><td>content of argument0</td><td>argument1</td> ... </tr>
我可以使用相同的方法构建它吗?我怎样才能传递两个content_tags?
答案 0 :(得分:3)
您可以使用concat
:
@template.content_tag(:tr,
@template.content_tag(:td, options[:argument0]).
concat(@template.content_tag(:td, options[:argument1])).
concat(@template.content_tag(:td, options[:argument2]))
# ....
)
或使用循环 - 如评论中建议的那样
rows = returning "" do |cells|
5.times do |i|
cells.concat @template.content_tag(:td, options["argument#{i}".to_sym]
end
end
@template.content_tag(:tr,rows)