undefined method `gsub' for nil:NilClass
Je suis newvbie en ruby on rails.. je vais avoir des problèmes avec gsub.. j'ai à chaque fois que je vais à la liste de mon magasin de page il est dit "undefined method `gsub' for nil:NilClass"..
ici est mycode :
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
merci d'avance
Vous devez vous connecter pour publier un commentaire.
Une bonne pratique est de faire
.to_s
lorsque vous êtes à l'aide de méthodes string.Cela signifie que
search_val
est en fait nul. Vous pouvez le vérifier en imprimant la valeur desearch_val
.Vous pouvez utiliser le
&
opérateur sursearch_val
. Il permet d'éviter le pointeur null exceptions sans ajouter des contrôles supplémentaires ou de l'aideto_s
pour convertir une chaîne de caractères d'une chaîne.Ainsi, vous aurez quelque chose comme ceci:
Vous pouvez en lire plus sur la sécurité de la navigation opérateur: http://mitrev.net/ruby/2015/11/13/the-operator-in-ruby/