Paperclip i render :partial? Nieokreślony błąd

Na początek witam wszystkich. Do tej pory forum tylko czytałem, lecz po kilkudniowej walce zostałem zmuszony do poproszenia Was o pomoc.

Na początek kilka faktów. W mojej aplikacji posiadam Miejsca/Obiekty (model Place) oraz Zdjęcia (model Photo) z relacja wiele do wielu.
Moje środowisko to linux debian, rails (2.3.5), nginx (0.8.45) z passenger (2.2.15). do tego używam thinking_sphinx (1.3.16) oraz paperclip (2.3.3).

W kontrolerze Places posiadam akcję show w, której nic nadzwyczajnego się nie dzieje: @place = Place.find(params[:id])
W widoku posiadam linijkę, która ma za zadanie wyświetlić zdjęcia przypisane do miejsca:

<%= render :partial => "photos/photo_list_link", :collection => @place.photos, :as => :photo %>

No i wszystko działa ładnie i pięknie do czasu, gdy nie dodam jakiegoś zdjęcia (samo wysłanie bez przypisywania go do żadnego Miejsca).
Wtedy to po wyświetleniu szczegółów miejsca (akcja show dla Places) otrzymuję błąd:

wrong number of arguments (0 for 2)

odołujący się dokładnie do linijki cytowanej wcześniej (render :partial)

Z tym, że dzieje się to tylko dla Miejsc, które posiadają przypisane Zdjęcia.

Plik photos/photo_list_link

[code]


  • <%= image_tag(photo.image.url(:thumb)) %><%= photo.approximate_date %>
  • [/code] Spróbowałem zastąpić render :partial w taki sposób: [code] <% @place.photos.each do |photo|%> <%= image_tag(photo.image.url(:thumb)) %><%= photo.approximate_date %> <% end %>[/code] Wtedy wszystko jest tak jak powinno.

    Kolejnym miejscem, w którym sytuacja się powtarza jest zwracanie wyników wyszukiwania przez sphinxa.
    Posiadam tam linijkę:

    <%= render :partial => "places/simply_place", :collection => @places, :as => :place %>

    Dzieje się tam dokładnie to samo co opisałem przed chwilą, czyli błąd o złej liczbie argumentów. Tu również po próbie wyświetlenia wyników w bloku, z szablonem dokładnie takim, jaki posiadam w pliku places/simply_place wszystko działa tak jak należy. Jeżeli zamienię linijkę odpowiedzialną za wyszukiwanie na @places = Place.all to wtedy również jest wszystko w porządku.

    Sytuacja rozwiązuje się dopiero po zrestartowaniu nginx.

    Sprawdzałem już logi nginx i railsów. Nic nadzwyczajnego mówiącego o błędzie nie znalazłem.

    Spotkał się może ktoś z takim lub podobnym błędem? Może wiecie jak temu zaradzić?
    Jest to błąd dodatków, czy jednak popełniaj gdzieś jakiś błąd?
    Jeżeli przedstawiłem za mało kodu, to oczywiście dokleję więcej.

    Z góry dziękuję i pozdrawiam
    Piotrek

    Hmm, dziwne! Może podziel się pełnym stack trace błędu? Znajdziesz go w logu albo na wyjściu konsoli

    Jasne.

    /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/partials.rb:216:in `map' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/partials.rb:216:in `render_partial_collection' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/partials.rb:182:in `render_partial' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:267:in `render_without_haml' /usr/lib/ruby/gems/1.8/gems/haml-3.0.4/lib/haml/helpers/action_view_mods.rb:13:in `render' /home/rails/takbylo/app/views/places/show.html.erb:12:in `_run_erb_app47views47places47show46html46erb' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:34:in `send' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:34:in `render' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:306:in `with_template' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:30:in `render' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/template.rb:205:in `render_template' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:265:in `render_without_haml' /usr/lib/ruby/gems/1.8/gems/haml-3.0.4/lib/haml/helpers/action_view_mods.rb:13:in `render' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:348:in `_render_with_layout' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:262:in `render_without_haml' /usr/lib/ruby/gems/1.8/gems/haml-3.0.4/lib/haml/helpers/action_view_mods.rb:13:in `render' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1250:in `render_for_file' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:945:in `render_without_benchmark' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:51:in `render' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:10:in `realtime' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:51:in `render' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1326:in `default_render' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1332:in `perform_action_without_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:617:in `call_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:10:in `realtime' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/rescue.rb:160:in `perform_action_without_flash' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/flash.rb:146:in `perform_action' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `send' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `process_without_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:606:in `process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:391:in `process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:386:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/routing/route_set.rb:437:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:87:in `dispatch' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:121:in `_call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:29:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:29:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:9:in `cache' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:28:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' /usr/lib/ruby/gems/1.8/gems/haml-3.0.4/lib/sass/plugin/rack.rb:41:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/string_coercion.rb:25:in `call' /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb:9:in `call' /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/params_parser.rb:15:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/session/cookie_store.rb:93:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/failsafe.rb:26:in `call' /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call' /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `synchronize' /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:114:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/reloader.rb:34:in `run' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:108:in `call' /opt/passenger-2.2.15/lib/phusion_passenger/rack/request_handler.rb:92:in `process_request' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop' /opt/passenger-2.2.15/lib/phusion_passenger/railz/application_spawner.rb:441:in `start_request_handler' /opt/passenger-2.2.15/lib/phusion_passenger/railz/application_spawner.rb:381:in `handle_spawn_application' /opt/passenger-2.2.15/lib/phusion_passenger/utils.rb:252:in `safe_fork' /opt/passenger-2.2.15/lib/phusion_passenger/railz/application_spawner.rb:377:in `handle_spawn_application' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:in `__send__' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:in `main_loop' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:163:in `start' /opt/passenger-2.2.15/lib/phusion_passenger/railz/application_spawner.rb:222:in `start' /opt/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:253:in `spawn_rails_application' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add' /opt/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:247:in `spawn_rails_application' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize' /opt/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:246:in `spawn_rails_application' /opt/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:145:in `spawn_application' /opt/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:278:in `handle_spawn_application' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:in `__send__' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:in `main_loop' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously' /opt/passenger-2.2.15/bin/passenger-spawn-server:61
    Sprawdziłem również odpalając Webrick. Na nim jest dokładnie tak samo.
    Z tym, że jeżeli zdjęcie zostało przesłane przez Nginx to na Webrick normalnie wykonują się rendery.
    To chyba wyklucza jakiś błąd po stronie serwera?