大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – rails,如何使用content_tag在helper中构建表?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
def display_standard_table(columns,collection = {}) content_tag :table do concat content_tag :thead do content_tag :tr do concat columns.collect { |column| content_tag(:td,column[:display_name]) } end end concat content_tag :tbody do collection.collect { |elem| concat content_tag(:tr,columns.collect { |column| content_tag(:td,elem.attributes[column[:name]]) }) } end end end
我认为这是我的看法:
<%= display_standard_table( [ { :name => 'id',:display_name => 'Id' },{ :name => 'login',:display_name => 'Login' },{ :name => 'first_name',:display_name => 'Name' },{ :name => 'last_name',:display_name => 'LastName' },{ :name => 'email',:display_name => 'Email'} ],@users) %>
html中的输出是:
<table><thead></thead><tbody></tbody></table>
应该是:
<table><thead><tr><td>Id</td><td>Login</td>...</tr></thead><tbody><tr>row here</tr></tbody></table>
我不知道什么是失踪. (btw.我使用Rails3)
[编辑]
def display_standard_table(columns,collection = {}) content_tag(:tablE) do concat(content_tag(:thead) do concat(content_tag(:tr) do concat(columns.collect { |column| content_tag(:td,column[:display_name]) }) end) end) concat(content_tag(:tbody) do concat(collection.collect { |elem| content_tag(:tr,elem.attributes[column[:name]]) }) }) end) end end
上述版本可以正常工作,但生成的html被转义:/根据content_tag生成的文档字符串应该是html_safe,但是它们被转义了:/
def display_standard_table(columns,collection = {}) thead = content_tag :thead do content_tag :tr do columns.collect {|column| concat content_tag(:th,column[:display_name])}.join().html_safe end end tbody = content_tag :tbody do collection.collect { |elem| content_tag :tr do columns.collect { |column| concat content_tag(:td,elem.attributes[column[:name]]) }.to_s.html_safe end }.join().html_safe end content_tag :table,thead.concat(tbody) end
以上是大佬教程为你收集整理的ruby-on-rails – rails,如何使用content_tag在helper中构建表?全部内容,希望文章能够帮你解决ruby-on-rails – rails,如何使用content_tag在helper中构建表?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。