1
這是使用Rails 3.0.10和HAML 3.1.3,但在ERB部分使用相同的邏輯時,這也是一個問題。使用參數產生ActionView幫助器。在開發模式下工作,但不是生產
我有一個非常奇怪的情況,我的代碼在開發模式下按預期工作,但在生產模式下死亡嚴重。
我具有部分:
- @emails.group_by(&:day).each do |day, email|
- email.each do |msg|
=message_content_for_link(msg) do |content| #loops here in production
=link_to content, "#/email/#{msg.id}", :id => "message_#{msg.id}", :class => cycle('even', 'odd') + ' view_message'
message_content_for_link在一個輔助這樣定義:
def message_content_for_link(msg, &block)
content = msg.is_read ? [content_tag(:span, '', :class => 'read')] : [content_tag(:span)]
content << content_tag(:p, h(msg.from), :class => 'from')
content << content_tag(:p, truncate(h(msg.subject)), :class => 'subject')
block.call content.join('').html_safe
end
在開發模式中上述的正常工作。在生產中,隨着代碼循環= message_content_for_link(msg)do | content |,它會嚴重死亡直到服務器的內存耗盡。
我已經在ERB中重寫了上述內容,但效果完全相同。
<% @emails.group_by(&:day).each do |day, email| %>
<% email.each do |msg| -%>
<%= message_content_for_link(msg) do |content| %>
<%= link_to content, "#/email/#{msg.id}", :id => "message_#{msg.id}", :class => cycle('even', 'odd') + ' view_message' %>
<% end -%>
<% end -%>
<% end -%>
我有一種感覺,我失去了一些非常明顯的東西。我還是這是一個錯誤?是否有任何解決方法的建議?
再次感謝您的任何建議,線索或提示。
編輯:這不是一個HAML問題的等效ERB代碼有同樣的問題。
你確定你不只是在生產中有很多電子郵件嗎? – Satya