Ответ Rails в какой-то момент пропускается

Действие My Rails останавливает рендеринг ответа после того же объема переданных данных. Не отображается ошибка или предупреждение.

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

Я попробовал это с thin, webrick а также pow + nginx,

Похоже, что где-то есть ограничение размера ответа. Есть идеи?

ОБНОВИТЬ:

Сбой рендеринга на конкретном коде (даже если я очищаю _offer частичное):

# Controller:
@offers = Offer.all

# View:
<% offers.each do |offer| %>
<%= render offer %>
<% end %>

# views/offers/_offer.html.haml
%li{ :class => offer.promo_type }
.content_card
    .content_item_wrapper
        .exclusive_content_ribbon
        .exlusive_glossy
        .exclusive_operator
            .operator_icon
        .exclusive_content_photo= image_tag offer.package.hotel.main_image_path
        .exclusive_content_hotel
            .ex_hotel_stars
                %span{ :class => ["ex_hotel_stars_b", "star_#{offer.package.hotel.stars}"] }
            .ex_hotel_name
                %a= offer.package.hotel.name
            .ex_hotel_place
                %span.ex_hotel_place_country= offer.package.hotel.country.name_ru
                &#8250;
                %span.ex_hotel_place_region= offer.package.hotel.city.name_ru

ОБНОВЛЕНИЕ 2:

Это начинает работать, если я удаляю все ниже .exclusive_content_photo= image_tag offer.package.hotel.main_image_path (включая эту строку)

ОБНОВЛЕНИЕ 3:

Любой звонок в offer.package вызывает его сбой. В консоли все работает нормально.

=========

Мой список драгоценных камней:

Драгоценные камни, включенные в комплект:
  * aasm (3.0.14)
  * actionmailer (3.2.9)
  * actionpack (3.2.9)
  * activeadmin (0.5.0 eea827a)
  * activemodel (3.2.9)
  * activerecord (3.2.9)
  * activeresource (3.2.9)
  * activesupport (3.2.9)
  * адресуемый (2.3.2)
  * ansi (1.4.3)
  * arbre (1.0.1)
  * arel (3.0.2)
  * aws-sdk (1.7.1)
  * bcrypt-ruby (3.0.1)
  * бурбон (2.1.2) * строитель (3.0.4)
  * пуля (4.2.0 c292bb7)
  * связка (1.2.1) * канкан (1.6.8)
  * капистрано (2.13.5)
  * капибара (1.1.3) * целлулоид (0.12.3) * детский процесс (0.3.6)
  * хронический (0.8.0)
  * clickatell (0.8.2 62d215c)
  * кодовое поле (1.0.8)
  * кофейные рельсы (3.2.2)
  * coffee-script (2.2.0)
  * coffee-script-source (1.4.0)
  * connection_pool (0.9.2)
  * css_parser (1.2.6)
  * daemons (1.1.9)
  * devise (2.1.2)
  * diff-lcs (1.1.3)
  * имя_домена (0.5.4)
  * erubis (2.7.0)
  * eventmachine (1.0.0)
  * уведомление об исключении (3.0.0)
  * execjs (1.4.0)
  * facter (1.6.14)
  * factory_girl (4.1.0)
  * factory_girl_rails (4.1.0)
  * fancybox-rails (0.1.4)
  * faraday (0.8.4)
  * faraday_middleware (0.9.0)
  * fastcsv (1.5.5)
  * faye-websocket (0.4.6)
  * ffi (1.2.0)
  * formtastic (2.2.1)
  * god (0.13.1)
  * guard (1.5.4)
  * guard-rspec (2.1.2)
  * haml (3.1.7)
  * has_scope (0.5.1)
  * hashie (1.2.0)
  * highline (1.6.15)
  * hike (1.2.1)
  * http_parser.rb (0.5.3)
  * httparty (0.9.0)
  * i18n (0.6.1)
  * наследуемые_ресурсы (1.3.1)
  * jbuilder (0.8.2)
  * trip (1.0.4)
  * jquery-rails (2.1.3)
  * json (1.7.5)
  * kaminari (0.14.1)
  * kgio (2.7.4)
  * launchy (2.1.2)
  * letter_opener (1.0.0)
  * libv8 (3.3.10.4)
  * libwebsocket (0.1.6.1)
  * libxml-ruby (2.3.3)
  * прослушивание (0.5.3) * дровосек (1.0.2) * почта (2.4.4)
  * markerb (1.0.0)
  * механизация (2.5.1)
  * meta_search (1.1.3)
  * method_source (0.8.1)
  * mime-типы (1.19)
  * mini_magick (3.4)
  * multi_json (1.3.7)
  * multi_xml (0.5.1)
  * multipart-post (1.1.5)
  * mysql2 (0.3.11)
  * net-http-digest_auth (1.2.1)
  * net-http-persistent (2.8)
  * net-scp (1.0.4)
  * net-sftp (2.0.5)
  * net-ssh (2.6.1)
  * net-ssh-gateway (1.1.0)
  * newrelic_rpm (3.5.2.17)
  * nokogiri (1.5.5)
  * ntlm-http (0.1.1)
  * orm_adapter (0.4.0)
  * poltergeist (1.0.2)
  * polyamorous (0.5.0)
  * polyglot (0.3.3)
  * pry (0.9.10)
  * rack (1.4.1)
  * rack-cache (1.2)
  * rack-защита (1.2.0)
  * rack-ssl (1.3.2)
  * rack-test (0.6.2)
  * рельсы (3.2.9)
  * railties (3.2.9)
  * капли дождя (0.10.0) * грабли (10.0.2)
  * rb-fsevent (0.9.2)
  * rdoc (3.12)
  * redcarpet (2.2.2)
  * redis (3.0.2)
  * redis-actionpack (3.2.3)
  * redis-activesupport (3.2.3)
  * redis-namespace (1.2.1)
  * redis-rack (1.4.2)
  * redis-rails (3.2.3)
  * redis-store (1.1.3)
  * респонденты (0.9.3)
  * roadie (2.3.4)
  * rspec (2.12.0)
  * rspec-core (2.12.0)
  * rspec-ожидания (2.12.0)
  * rspec-mocks (2.12.0)
  * rspec-nc (0.0.4)
  * rspec-rails (2.12.0))
  * rubyzip (0.9.9)
  * русский (0.6.0)
  * sass (3.2.3)
  * sass-rails (3.2.5)
  * sax-machine (0.1.0)
  * selenium-webdriver (2.26.0)
  * sendgrid (1.1.0)
  * sidekiq (2.5.3)
  * simple_oauth (0.1.9)
  * sinatra (1.3.3)
  * slim (1.3.4)
  * slop (3.3.3)
  * звездочки (2.2.1)
  * subexec (0.2.2)
  * храм (0.5.5)
  * терминал-уведомитель (1.4.2)
  * therubyracer (0.10.2)
  * тонкий (1.5.0)
  * тор (0.16.0)
  * наклон (1.3.3) * таймеры (1.0.1) * трут (1.9.1)
  * верхушка дерева (1.4.12)
  * турбо-звездочки-рельсы3 (0.3.2)
  * turn (0.9.6)
  * twitter-stream (0.1.16)
  * typhoeus (0.4.2)
  * tzinfo (0.3.35)
  * uglifier (1.3.0)
  * unf (0.0.5)
  * unf_ext (0.0.5)
  * единорог (4.4.0)
  *iform_notifier (1.1.0)
  * uuidtools (2.1.3)
  * надзиратель (1.2.1) * веб-роботы (0.0.13) * веб-сокет (1.0.3) * всякий раз (0.8.0)) * xpath (0.1.4)
  * yaml_db (0.2.3)

2 ответа

Решение

Причиной этого была жемчужинапули. Для получения дополнительной информации см. https://github.com/rails/rails/issues/8283

Похоже, вы используете "предложения" вместо "@offers" в своих представлениях. Кроме этого, у меня были проблемы с тем, что HAML экономит на сообщениях об ошибках, вызванных кодом Ruby в представлениях. Вы уверены, что у объекта, возвращаемого контроллером, есть все данные, используемые представлением? В вашем контроллере после получения предложений попробуйте ввести

puts @offers.inspect

и посмотрите в журнале вашего сервера, чтобы увидеть, что этот объект имеет информацию, которую вы ожидаете

Другие вопросы по тегам