[英]undefined method `gsub' for nil:NilClass
我是 ruby on rails 的新手.. 我遇到 gsub 問題.. 我每次去我的商店頁面列表時都會說“nil:NilClass 的未定義方法 `gsub'”..
這是我的代碼:
def self.search(search_val, page = 1)
@search_val = search_val.gsub("'", "\\\\'")
search_query = "store_id LIKE '%#{ @search_val }%' OR english_name LIKE '%#{ @search_val }%' OR chinese_name LIKE '%#{ @search_val }%'"
select("jos_store.id, store_id, english_name, chinese_name, store_manager, delivery_area,year, week").joins("LEFT OUTER JOIN (SELECT id as store_replenishment, store, MAX(stock_movement) AS stock_movement FROM jos_store_replenishment GROUP BY store) AS replenishment ON replenishment.store = jos_store.id").joins("LEFT OUTER JOIN jos_stock_movement ON jos_stock_movement.id = replenishment.stock_movement").where(search_query).order("year DESC, week DESC").paginate :page => page, :per_page => 15
end
提前致謝
當您使用字符串方法時,一個好的做法是執行.to_s
。
您可以在search_val
上使用&
運算符。 它允許您避免空指針異常,而無需添加額外的檢查或使用to_s
將字符串轉換為字符串。
所以,你會有這樣的東西:
@search_val = search_val&.gsub("'", "\\\\'")
您可以在此處閱讀有關安全導航運算符的更多信息:http: //mitrev.net/ruby/2015/11/13/the-operator-in-ruby/
這意味着search_val
實際上是 nil。 您可以通過打印出search_val
的值來輕松驗證這一點。
我不確定這是否是您的情況,但是在幾次回滾和遷移之后,我發生了相同的undefined
方法gsub
for nil:NilClass
錯誤。
然后,我重新啟動服務器並工作。 對於一些在 Google 上搜索到此主題的人來說,可能就是這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.