0

コントローラーに次のコードがあります

@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#generate の最初の行

def generate(value)
  data = ::Base64.strict_encode64(@serializer.dump(value))
  "#{data}--#{generate_digest(data)}"
end

これを修正する方法についてのアイデアはありますか? 前もって感謝します。

4

1 に答える 1

0

これは使えません

@serializer.dump(value)

これがエラーの原因です。このリンクを読んでください。Rubyでのシングルトンの使用に関するすべてです。 リンク

于 2014-05-19T13:19:00.390 に答える