如何解决HTML表与红宝石顺序错误
我正在尝试使用rails在html.erb文件中构建一个简单表。但是,html页面上的输出顺序错误。
这是该视图的帮助程序中的代码:
html_string = ""
if empl.gender == "M"
gender = "Male"
else
gender = "Female"
end
html_string << "<h1>" + empl.first_name + " " + empl.last_name + "</h1>
<br><br>
<table class = \"table2\">
<tr><td>Employee number:</td><td>" + empl.emp_no.to_s + "</td></tr>
<tr><td>Gender:</td></tr>" + gender + "</td></tr>
<tr><td>Birth date</td><td>" + empl.birth_date.to_s + "</td></tr>
</table>"
我不知道这是否是常规的方法,但是可以。视图本身只是输出html字符串。
这是网页的页面来源:
<br><br>
<table class = "table2">
<tr><td>Employee number:</td><td>10005</td></tr>
<tr><td>Gender:</td></tr>Male</td></tr>
<tr><td>Birth date</td><td>1955-01-21</td></tr>
</table>
似乎有秩序,但看起来像this
此问题来自哪里?
解决方法
在您的HTML字符串中,您尚未打开性别的td
:
html_string << "<h1>" + empl.first_name + " " + empl.last_name + "</h1>
<br><br>
<table class = \"table2\">
<tr><td>Employee number:</td><td>" + empl.emp_no.to_s + "</td></tr>
<tr><td>Gender:</td><td>" + gender + "</td></tr>
<tr><td>Birth date</td><td>" + empl.birth_date.to_s + "</td></tr>
</table>"
所以在您的版本中是这样的:
<tr><td>Gender:</td></tr>" + gender + "</td></tr>
应该是这样的:
<tr><td>Gender:</td><td>" + gender + "</td></tr>
应该可以解决您的问题。
,尝试一下-您写了</tr>
而不是<td>
html_string << "<h1>" + empl.first_name + " " + empl.last_name + "</h1>
<br><br>
<table class = \"table2\">
<tr><td>Employee number:</td><td>" + empl.emp_no.to_s + "</td></tr>
<tr><td>Gender:</td><td>" + gender + "</td></tr>
<tr><td>Birth date</td><td>" + empl.birth_date.to_s + "</td></tr>
</table>"
问题出在下一行-
<tr><td>Gender:</td></tr>" + gender + "</td></tr>
应该是这样-
<tr><td>Gender:</td><td>" + gender + "</td></tr>
,
不确定为什么要使用字符串创建html标记,而是有更好的选择,例如创建erb文件。
但是您可以这样做,并选择字符串插值来代替那些笨拙的+
符号。这无疑提高了可读性,并减少了错误。
html_string = <<html
<h1>#{empl.first_name} #{empl.last_name}</h1>
<br><br>
<table class ="table2">
<tr>
<td>Employee number:</td>
<td>#{empl.emp_no.to_s}</td>
</tr>
<tr>
<td>Gender:</td>
<td>#{empl.gender == "M" ? "Male" : "Female"}</td>
</tr>
<tr>
<td>Birth date</td>
<td>#{empl.birth_date.to_s}</td>
</tr>
</table>
html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。