2017-05-22 145 views
1

有時候在我的模板,我想對於一些CSS屬性定義默認值時,這些值作爲參數在渲染功能不通過,像這樣:最佳方式

height: <%= if @height do %><%[email protected]%><% else %>"50px";<%end%> 

我我想知道是否有更好的(不太詳細的)做這件事的方法。

回答

5

您可以使用一個事實,即

  1. @變量也可以通過一個名爲assigns地圖訪問,
  2. 使用括號語法返回訪問地圖中的一個不存在的關鍵零,而不是拋出一個例外,
  3. ||返回右邊值,如果左側是nil

和寫:

<%= assigns[:height] || "50px" %> 

,以獲得相同的行爲,你的if/else

編輯:

<%= @height || "50px" %> 

上面的代碼將工作,即使​​沒有設置任何:如果你總是設置​​,即使值爲nil,你可以用較小甚至代碼做到這一點值,但如果未設置​​,則會引發異常。