[英]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.