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? –