Rails 3.1 fields_for рендерит пару полей и остановок - PullRequest
1 голос
/ 16 сентября 2011

В производственной среде, где я размещаю свое приложение с Phusion Passanger + Nginx, у меня возникают поля_, поскольку я не могу правильно отрисовать огромное количество полей.

Пример:

members_controller.rb:

class MembersController << ApplicationController

  def new
    @member = Member.new

    # There are 200 or so groups in the database.
    current_client.groups.active.each do |group|
      @member.affiliation.build(:group => group)
    end
  end
end

new.html.haml:

= form_for @member do |f|
  = f.text_field :name
  = f.text_field :phone
  = f.fields_for :affiliations do |affiliation_form|
   .group_field
      = affiliation_form.hidden_field :group_id
      = affiliation_form.label :_destroy, affiliation_form.object.group.name
      = affiliation_form.check_box :_destroy, { }, "0", "1"

Пока все хорошо, в разработке это вернуло бы все полякак я хочу их.При развертывании приложения на рабочем сервере (тот же ruby ​​1.9.2p180).HTML-код неполный, примерно 30-50 или около того из 200 полей, отображаемых с последним * .group_field * без каких-либо или с некоторыми элементами (каждый раз разные результаты).

Второе последнее групповое поле:

<div class="group_field">
  <input id="..." name="..." type="hidden" value="48"> 
  <label for="...">...</label>
  <input name="..." type="hidden" value="1">
  <input id="..." name="..." type="checkbox" value="1"> 
</div>

Последнее групповое поле:

<div class="group_field">
  <input id="..." name="..." type="hidden" value="49">
  <label for="...">...</label>
</div>

Журнал не выдает никаких ошибок, поэтому я не смог найтигде ошибка / проблема находится.Я также попробовал ту же самую форму в производственной среде, предоставляя только приблизительно 20 групп, которые прекрасно работают.Может кто-нибудь помочь мне отследить эту очень странную ошибку?

1 Ответ

1 голос
/ 20 сентября 2011

Я почти гарантирую, что это связано с тем, что в Rails 3.1 введено потоковое HTTP .Несмотря на кажущуюся возможность выбора этой функции, она, похоже, вызывает много проблем, возможно, из-за изменений в средствах буферизации вывода ActionView, которыми пользуются такие помощники, как fields_for.

В данный момент и главным образомиз-за этого изменения поддержка nginx и пассажиров для Rails 3.1 в лучшем случае ненадежна.Вы найдете другие подобные вопросы , которые заканчиваются переключением на Единорог , Тонкий или что-то подобное и проксирование от nginx.

...