簡體   English   中英

Helper - 未定義的方法 `gsub' 為 nil:NilClass

[英]Helper - undefined method `gsub' for nil:NilClass

我有這個功能

application_helper.rb

def nl2br(s)
  s.gsub(/\n/, '<br/>')
end

看法

<%= nl2br(@event.rules).html_safe %>

錯誤:

nil:NilClass 的未定義方法`gsub'

有時內容可能nil那么處理它的最佳方法是什么?

當我添加unless s.nil? 在函數中我得到html_safe undefined method error

(2019 年更新)

使用現代 Ruby (2.3+),您可以使用安全導航操作符

def nl2br(s)
  s&.gsub(/\n/, '<br/>')
end

如果s為 nil,則s&.gsub將回退到 nil,然后輸出為空字符串。


(2015 年的原始答案)

簡單的技巧,只需使用 OR 來設置默認值:

def nl2br(s)
  (s||'').gsub(/\n/, '<br/>')
end

或者,由於nil.to_s計算為空字符串,您可以執行以下操作:

def nl2br(s)
  s.to_s.gsub(/\n/, '<br/>')
end

暫無
暫無

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

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