2015-01-31 5 views
0

У меня почти нет знаний в рельсах, но этот проект приземлился на мои руки, и я должен сделать несколько вещей в нем, и разве мне не повезло, что это написано в рельсах!Неопределенный метод, каждый для нуля в рельсах

Итак, я просмотрел код и попытался имитировать то, что было сделано на этой странице, я работаю, и я думаю, что это загрузка некоторых файлов из папки или чего-то в div, и почему-то мне нужно делаю то же самое, но я не знаю, как это сделать.

Результат дал мне эту ошибку:

undefined method `each' for nil:NilClass 

и

127:   <tr> 
128:   <td><table width="510" border="0" cellpadding="2" cellspacing="5" bgcolor="#CCCCCC"> 
129:    
130:   <% for trofeu_rotax_classificas in @trofeu_rotax_classifica %> 
131:   <tr> 
132:    <td width="22" bgcolor="#333333"><div align="center" class="style4">i</div></td> 
133:    <td width="377" bgcolor="#E4E4E4"><span class="style18"> <%= trofeu_rotax_classificas.titulo %></span></td> 

и ...

/home/korridas/site/app/views/public/trofeu_rotax.html.erb:130:in `_run_erb_app47views47public47trofeu_rotax46html46erb' 

любые идеи?

я могу обновить пост с тем, что вам нужно, чтобы выяснить проблемы

редактировать:

/home/korridas/site/app/views/public/trofeu_rotax.html.erb:130:in `_run_erb_app47views47public47trofeu_rotax46html46erb' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_view/renderable.rb:34:in `send' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_view/renderable.rb:34:in `render' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_view/base.rb:306:in `with_template' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_view/renderable.rb:30:in `render' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_view/template.rb:205:in `render_template' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_view/base.rb:265:in `render' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_view/base.rb:348:in `_render_with_layout' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_view/base.rb:262:in `render' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/base.rb:1250:in `render_for_file' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/base.rb:936:in `render_without_benchmark' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:51:in `render' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in `ms' 
/home/korridas/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/benchmark.rb:308:in `realtime' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in `ms' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:51:in `render' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/base.rb:1326:in `default_render' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/base.rb:1332:in `perform_action_without_filters' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/filters.rb:617:in `call_filters' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in `ms' 
/home/korridas/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/benchmark.rb:308:in `realtime' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in `ms' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/rescue.rb:160:in `perform_action_without_flash' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/flash.rb:151:in `perform_action' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/base.rb:532:in `send' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/base.rb:532:in `process_without_filters' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/filters.rb:606:in `process' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/base.rb:391:in `process' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/base.rb:386:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/routing/route_set.rb:438:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:87:in `dispatch' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:121:in `_call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.8/lib/active_record/query_cache.rb:29:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.8/lib/active_record/query_cache.rb:29:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.8/lib/active_record/query_cache.rb:9:in `cache' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.8/lib/active_record/query_cache.rb:28:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/string_coercion.rb:25:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/rack-1.1.6/lib/rack/head.rb:9:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/rack-1.1.6/lib/rack/methodoverride.rb:24:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/params_parser.rb:15:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/session/cookie_store.rb:99:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/failsafe.rb:26:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/rack-1.1.6/lib/rack/lock.rb:11:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/rack-1.1.6/lib/rack/lock.rb:11:in `synchronize' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/rack-1.1.6/lib/rack/lock.rb:11:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:106:in `call' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/rack/thread_handler_extension.rb:77:in `process_request' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler/thread_handler.rb:142:in `accept_and_process_next_request' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler.rb:448:in `start_threads' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler.rb:442:in `initialize' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler.rb:442:in `new' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler.rb:442:in `start_threads' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler.rb:441:in `times' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler.rb:441:in `start_threads' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler.rb:440:in `synchronize' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler.rb:440:in `start_threads' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/lib/phusion_passenger/request_handler.rb:205:in `main_loop' 
/home/korridas/.rvm/gems/ruby-1.8.7-p374/gems/passenger-4.0.37/helper-scripts/classic-rails-preloader.rb:187 

весь HTML бит:

<tr> 
    <td><table width="510" border="0" cellpadding="0" cellspacing="5" bgcolor="#333333"> 
     <tr> 
     <td><a href="/trofeu_rotax_classificacoes"><span class="style6">CLASSIFICAÇÕES</span></a></td> 

     <tr> 
    <td><table width="510" border="0" cellpadding="2" cellspacing="5" bgcolor="#CCCCCC"> 

     <% for trofeu_rotax_classificas in @trofeu_rotax_classifica %> 
     <tr> 
     <td width="22" bgcolor="#333333"><div align="center" class="style4">i</div></td> 
     <td width="377" bgcolor="#E4E4E4"><span class="style18"><%= trofeu_rotax_classificas.titulo %></span></td> 
     <% unless(trofeu_rotax_classificas.file.blank?) %> 
     <td width="91" bgcolor="#FF0000"><div align="center"><span class="style5"><%= link_to("download PDF", trofeu_rotax_classificas.file.url, :class => "style5") %></span></div></td> 
     <% end %> 
     </tr> 
     <% end %> 
    </table></td> 
    </tr> 


     </tr> 
    </table></td> 
    </tr> 

есть и эти файлы я думаю, код ссылается на:

<table> 
<tr> 
<th class="th_id"><span>Id</span></th> 
<th>Titulo</th> 
<th class="th_actions"><span>Actions</span></th> 
</tr> 

<% @trofeu_rotax_classificas.each do |trofeu_rotax_classificas| %> 
<tr> 
    <td class="td_id"><%=h trofeu_rotax_classificas.id %></td> 
    <td><%=h trofeu_rotax_classificas.titulo %></td> 
    <td> 
     <%= link_to image_tag('cms/edit.png'), trofeu_rotax_classificas_path(trofeu_rotax_classificas) %> 
     <%= link_to image_tag('cms/delete.png'), trofeu_rotax_classificas, :confirm => 'Tem a certeza que deseja apagar este item?', :method => :delete %> 
    </td> 
</tr> 
<% end %> 
</table> 

и:

<% form_for(@trofeu_rotax_classificas, :html => { :multipart => true }) do |f| %> 
    <%= f.error_messages %> 

    <p> 
    <%= f.label :titulo %><br /> 
    <%= f.text_field :titulo %> 
    </p> 
    <p> 
    <%= f.label :file %><br /> 
    <%= link_to("Ficheiro", @trofeu_rotax_classificas.file.url) unless(@trofeu_rotax_classificas.file.blank?) %><br /> 
    <%= upload_column_field 'trofeu_rotax_classificas', 'file' %> 
    </p> 
    <p> 
    <%= f.submit 'Create' %> 
    </p> 
<% end %> 

и ...

<%= render(:layout => "form") %> 

и контроллер http://pastebin.com/3hKNWUHY

+1

Невозможно увидеть 'каждый' apprear в любом месте, нужно больше кода об этой ошибке. – dddd1919

+0

- это то, что я добавил достаточно? – Miguel

+0

Существует файл приложения/контроллера .rb, который нам нужно будет увидеть.Если вы можете использовать «рейк-маршруты» из корня вашего проекта, что может помочь выявить проблему. В принципе, где-то в вашем контроллере вы инициализируете переменную экземпляра, называемую '@ trofeu_rotax_classifica', которая является тем, что происходит в вашем цикле« for ... », но эта переменная инициализируется неправильно или вообще не инициализируется. .. поэтому @trofeu_rotax_classifica содержит nil, а цикл «for ...» не работает на nil. – SteveTurczyn

ответ

0

Ошибка

undefined method `each' for nil:NilClass 

означает, что вы вызываете метод каждое из а nil объект.

В вашем случае, кажется, что переменная @trofeu_rotax_classifica является nil так что вы хотите, чтобы проверить его назначение в вашем controller

0

Эта переменная равна нулю: @trofeu_rotax_classificas.

Переменные, в Rails, устанавливаются в контроллер. В своем журнале сервера он должен указать Started GET for..., а затем Processing by <Controller>#<action>.

По какой-то причине этот контроллер не возвращает переменную. (Переменные экземпляра, если они не установлены, по умолчанию nil)

Похоже, у вас может быть PublicController? Если это так, вероятно, проблема кроется.

+0

http://pastebin.com/DZYnk1e1 вот контролер, я сделал копию одного из кода, который я имитирую, и пытался изменить ситуацию, и ошибка все еще сохраняется – Miguel

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