use*_*308 12 ruby ruby-on-rails
我试图格式化Flash错误并遇到一些问题:
errors = ["error1 msg", "error2 msg", "error3 msg"]
flash[:error] = errors.join("\n")
Run Code Online (Sandbox Code Playgroud)
我希望看到它们显示在三个单独的行中,但是,我"error1 msg error2 msg error3 msg"改为了.
我用来加入字符串的换行符发生了什么变化?
Bla*_*son 17
HTML不使用换行符换行符,它使用<br/>标记.此外,您必须使用html_safe以确保模板不会转义<br/>标记
errors = ["error1 msg", "error2 msg", "error3 msg"]
flash[:error] = errors.join("<br/>").html_safe
Run Code Online (Sandbox Code Playgroud)
此外,如果您有一个有错误的对象,您可以使用它full_messages来获得格式错误的错误.像这样的东西:
flash[:error] = @user.errors.full_messages.join("<br/>").html_safe
Run Code Online (Sandbox Code Playgroud)
浏览器通常会忽略HTML中的换行符.也许使用换行<br/>标记加入错误会产生预期的效果.
flash[:error] = errors.join("<br/>")
Run Code Online (Sandbox Code Playgroud)
虽然在语义上将错误置于无序列表(<ul>)中并将每个错误放在其自己的列表项(<li>)中可能更有意义.你的来电.
| 归档时间: |
|
| 查看次数: |
9251 次 |
| 最近记录: |