2016-07-02 4 views
0

После установки некоторых драгоценных камней и их удалений из моего файла гема, я получил эту ошибкуНеопределенного метод `GSUB» для ноля: NilClass после установки камней

undefined method `gsub' for nil:NilClass 

Extracted source (around line #16): 

    <%= link_to (image_tag post.image.url(:medium)), post %> 

У меня есть все, что в моем приложении точно так же, как перед добавлением драгоценные камни и т. д. Но все же я получаю эту ошибку. Что я могу сделать?

ответ

0

Либо изображения, либо методы url, вероятно, используют gsub для объекта, который равен нулю. Я бы проверял тела обоих этих методов.

Это может быть что-то с текущими данными, а не с удаленным драгоценным камнем.

Кроме того, если вы удалили драгоценный камень из своего Gemfile, вы снова запустили установку пакета?

+0

Да, я сделал, но я не уверен, если это данные, потому что все есть, Я даже проверяю консоль, и все сообщения есть. – Ghamtre

+0

Итак, если вы найдете это сообщение в консоли, запустите post.image.url (: medium) - вы не видите ошибку? – Danny98

0

Вы можете попробовать и заменить его:

<% if post.image && !post.image.url.nil? %> 
    <%= link_to (image_tag post.image.url(:medium)), post %> 
<% else %> 
    <p> Image unavailable! </p> 
<% end %> 
0

Используйте удобный метод Rails #try

<% if post.try(:image).try(:url) %> 
    <%= link_to (image_tag post.image.url(:medium)), post %> 
<% end %> 

От: https://github.com/rails/rails/blob/dd7d5b7c800b4f6d32747913fc7c8d00ce94f03a/activesupport/lib/active_support/core_ext/object/try.rb#L44

# +try+ calls can be chained: 
# 
# @person.try(:spouse).try(:name) 
# 
# instead of 
# 
# @person.spouse.name if @person && @person.spouse 

Примечание: #try предотвратит ошибки в представлении, но не устранить основные проблемы, такие как ActiveRecord ассоциации: post.whatever.whatever

Смежные вопросы