2016-08-09 3 views
0

Я пытаюсь запустить этот код и он возвращает мнене определен метод класса ноль при визуализации частичного

неопределенный метод `изображения» для ноль: NilClass

Но синтаксис и код, кажется, хороши.

индекс:

- @recipes.each_slice(4) do |recipes| 
    .row 
    - recipes.each do |recipe| 
     .col-md-3 
     %h4.modal-title= recipe.title 
     .modal-body 
      = render :partial =>'show', :locals => {:recipe => @recipe} 

_show:

.main_content 
    #recipe_top.row 
    .col-md-4 
     = image_tag @recipe.image.url(:medium), class:"recipe_image" 
+0

Единственное место, где вы вызываете 'image', находится в' _show', поэтому мы знаем, что проблема '@ recipe' -' nil'. Измените свой вопрос, включив в него код контроллера, где вы устанавливаете '@ recipe'. –

ответ

2

Изменить код:

= render :partial =>'show', :locals => { :recipe => recipe } 

Поскольку вы не имеете переменную экземпляра @recipe, но локальная переменная recipe определенной в строке recipes.each do |recipe|.

+0

Он работает спасибо! – Orsay

1

Попробуйте это, Просто замените переменную экземпляра @recipe при прохождении в локали, потому что вы уже выполнили ее и получаете локальную переменную, поэтому передайте ее в своей локали, а затем вызовите на этой странице.

recipe.image.url(:medium) 
+0

Это было хорошее решение спасибо за помощь – Orsay

1

Вы неправильно импликации в коде:

вместо :recipe => @recipe использования :recipe => recipe, а затем в шоу частичное просто использовать recipe вместо @recipe

Или

индекса определите @recipe = recipe и используйте.в шоу.

+0

Это было хорошее решение спасибо за помощь – Orsay

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