簡體   English   中英

javascript對haml中的ruby對象的評估拋出undefine方法異常

[英]javascript evaluation of ruby object inside haml throw undefine method exception

我有一個javascript,只有在定義了ruby對象時,才應該更改haml元素。不幸的是,當頁面呈現為無條件至if條件為false時,將評估“#{project.builds.last.updated_at}”,因此我越來越

“ nil:NilClass的未定義方法`updated_at'”

在project.build.last上。

if ((#{@project.builds.size} && #{@project.builds.size}) > 0){  
  document.getElementById("lastSave").innerHTML = "#{@project.builds.last.updated_at}";
}

知道如何強制實時評估嗎?

您可以使用try方法:

"#{@project.builds.last.try(:updated_at)}"

如果沒有builds ,它將生成一個空字符串,但這並不重要,因為在這種情況下不會執行JS的這一部分。 盡管我建議您進行重構,但由於HAML中的帶Ruby插值的內聯JS不太易讀且易於調試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM