Phusion Passanger + Nginx を使用してアプリケーションをホストしている本番環境で、fields_for が大量のフィールドを適切にレンダリングできないという問題が発生しています。
例:
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 は不完全で、最後の *.group_field* でレンダリングされた 200 のフィールドのうち約 30 ~ 50 程度が存在するか、要素が存在しないか、いくつかの要素が存在します (結果は毎回異なります)。
最後から 2 番目のグループ フィールド:
<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 程度のグループのみを提供する実稼働環境で同じフォームを試しました。この非常に奇妙なバグを追跡するのを手伝ってくれる人はいますか?