1
我有rails
動作,包括以下HAML
部分:如何加速呈現帶有表單元素的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
與其相關聯parent
可以大大改變,並且可高達2000-3000以及根據用戶的items
數目。我們對父母可以擁有的孩子數量沒有限制。在我決定limit:
之前,有沒有辦法加速渲染.each_with_index
方法,因爲現在這需要10秒鐘才能在本地完成請求。
速度有一些converting a partial to a method/block的討論,但我不完全理解它。
此外,值得注意的是,這個相同的部分在rails 5.0.4
表現更好,但它已經大大減緩與rails 5.1.4
。
這使得美洲獅服務器完全掛在本地,每次我打開一個大集合的視圖。仍在挖掘...... brb。 – marvindanig
答案的第三行應該是' - if @ parent.has_item_numbers?'。時間現在在2.5-3.5秒的範圍內。現在看看片段緩存:http://guides.rubyonrails.org/caching_with_rails.html – marvindanig
@marvindanig我明確地在'render'調用中傳遞'parent',通常最好不要引用像'@ @ parent'。你應該明確注入你的依賴關係。 – meagar