は私が部分的に以下のHAML
が含まrails
作用を有する:フォーム要素を使ってrails_partialのレンダリングを高速化する方法はありますか?
- @items.each_with_index do |item, i|
- item_no = 'item' + item.item_no.to_s
.item
= form_for item, remote: true, html: { multipart: true, autocomplete: 'off' } do |f|
= f.hidden_field :parent_id, :value => @parent.id
= f.hidden_field :image, value: item.image
...
...
// 5-6 attributes
- if @parent.has_item_numbers?
.serial-number{ class: ('right' if item.item_no.odd?) }
= item.item_no
大きく異なりますし、同様に、ユーザーに応じて2000から3000まで行くことができ、そのparent
に関連したitems
の数。親はまだ子供の数に制限はありません。 limit:
を決定する前に、.each_with_index
メソッドのレンダリングを高速化する方法があります。なぜなら、これはローカルでリクエストを完了するのに最大10秒かかるからです。
速度についてはconverting a partial to a method/blockの議論がありますが、私は完全に理解していません。
また、同じ部分がrails 5.0.4
ではるかに優れていましたが、rails 5.1.4
でかなり減速しています。
これは、大規模なコレクションを含むビューを開くたびに、pumaサーバーを私のローカルに完全にハングします。まだ掘って... brb。 – marvindanig
最後の3行目は ' - if @ parent.has_item_numbers? 'です。時間は今や2.5〜3.5秒の範囲にある。フラグメントキャッシングを見てみましょう:http://guides.rubyonrails.org/caching_with_rails.html – marvindanig
@marvindanig 'render'コールで' parent'を明示的に渡しますが、部分的には '@親。依存関係を明示的に注入する必要があります。 – meagar