0
我有下面的代碼在我的控制器如何將單例對象傳遞給部分在rails?
@current_chat = current_user.sent_messages
.where("created_at > ? and receiver_id = ?", current_user.current_sign_in_at, current_chat[:receiver_id].to_i)
.select("body, created_at").each { |message| message.instance_eval { def type; @type end; @type = 'sent' } }
而且我傳遞@current_chat對象的部分,像這樣:
<%= render partial: 'shared/chat_form', locals: { messages: @current_chat } %>
但我發現了以下錯誤:
singleton can't be dumped
在的ActiveSupport第一線:: MessageVerifier#產生
def generate(value)
data = ::Base64.strict_encode64(@serializer.dump(value))
"#{data}--#{generate_digest(data)}"
end
有關如何解決此問題的任何想法?提前致謝。
我沒有使用它。這是rails源代碼。我已經提到了問題中的模塊和類。任何方式來避免它? –
爲對象創建單例類後,您不能再在該對象上使用Marshal.dump。編組庫不支持具有單例類的對象。 –
實際上,我想將查詢'current_user.sent_messages'返回的記錄'標記'爲'發送'。任何想法如何做到這一點,而不使用instance_eval? –