2013-07-20 5 views
-1

Я запустил свой сайт с помощью phusion-пассажира на сервере, и все, кажется, работает плавно за исключением одной страницы.Rails Ruby - Handeling Nil in production vs development

Здесь я получаю следующее сообщение об ошибке:

NoMethodError in Identities#show 

Showing /var/www/feedme/app/views/identities/_platemenu.html.erb where line #13 raised: 

undefined method `collect' for nil:NilClass 


10: <div id="plate_heading_box"> 
11:  <p class="plates_head"> 
12:    
13:    <%@[email protected]{|i| i.to_i}%> 
14:    <%@[email protected](&:id)%> 
15: 
16:    <%if @startup != 1%> 

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

if params[:plates]!=nil 
    @myp = params[:plates] 
else 
    @myp = Array.new 
end 

Не совсем уверен, почему это не работает, никаких подсказок?

Заранее благодарен!

EDIT: Если переместить код контроллера к мнению он работает ... Я хотел бы сайт прочитал первый контроллер ....

+2

Это несоизмеримые фрагменты кода. Какой контроллер является вашим назначением '@ myp'? И какое представление обрабатывается первым после назначения? Код представления, который вы показываете, является частичным, поэтому я подозреваю, что в первый раз попал другой erb. Возможно, что-то происходит на пути к '@ myp'. – lurker

+0

Если вы получаете 'undefined method for nil: NilClass', это ВСЕГДА означает, что вы не настраиваете некоторые вар правильно. Дважды проверьте свой код, и не сомневайтесь, что это не стоит того. –

+0

Но если я неправильно задал переменные, почему он работает в разработке? – OXp1845

ответ

0

Я подозреваю, что проблема на самом деле на линии , где вы вызываете collect на @plates, который нигде не инициализируется.

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