我想用<%=%>进行打印。 PS:以下作品但看起来很糟糕。
<%= "String: #{html_escape @user.input} <br>".html_safe unless @user.input.blank? %>
我知道我能做到
<% unless @user.input.blank? %>
String: <%= @user.input %><br>
<% end %>
是否可以编写一个看起来像这样的方法:
def print_if_not_blank (string, input)
string.insert(html_escape input).html_safe unless input.blank?
end
printf_if_not_blank "String: #{} <br>", @user.input
我想我总能有一个像“String:EVIL&lt; br&gt;”这样的参数而不是取代“EVIL”,但这并不比我目前的解决方案更好。
答案 0 :(得分:1)
你可以这样写一个帮手:
def print_if_present(template, input)
return unless input.present?
string = template % { input: html_escape(input) }
string.html_safe
end
您的观点中使用的内容如下:
<%= print_if_present('String: #{input} <br>', @user.input)