2013-03-13 65 views
0

假設我有,追加安全HTML在Rails的不安全HTML 3.2

<%= @order.shipping.address1 + '<br />' unless @order.shipping.address1 %> 
<%= @order.shipping.address2 + '<br />' unless @order.shipping.address2 %> 

我怎樣才能返回變量與標籤的默認剝離,並打印「
」作爲html_safe?

假設,在<%= raw ...%>中打包會導致變量沒有被剝離html的安全問題。

回答

1

您不想使用任何類似raw或html_safe的內容,因爲它會在您正確地說出地址字段中打開漏洞。

你只需把它改寫這樣的:

<% unless @order.shipping.address1 %> 
    <%= @order.shipping.address1 %> 
    <br /> 
<% end %> 
<% unless @order.shipping.address2 %> 
    <%= @order.shipping.address2 %> 
    <br /> 
<% end %> 

不過,我會考慮用HTML/CSS做這件事,而不是添加斷裂線的。用div包圍它實際上會使下一個元素出現在下一行,因爲div是block element,因此會創建換行。

查看:

<% unless @order.shipping.address1 %> 
    <div> 
    <%= @order.shipping.address1 %> 
    </div> 
<% end %> 
<% unless @order.shipping.address2 %> 
    <div> 
    <%= @order.shipping.address2 %> 
    </div> 
<% end %> 

如果需要進一步的造型,你可以添加一個類,並使用CSS寬度,高度和其他的東西。

+0

完美。謝謝! – Russell 2013-03-13 12:18:37