下記を実行するときに、
ruby
1request.try(:user_agent).try(:force_encoding, "UTF-8")
下記のエラーが出てしまいます。
Failure/Error: user_agent: request.try(:user_agent).try(:force_encoding, "UTF-8") RuntimeError: can't modify frozen String
request.user_agent.frozen? が true になっているためのようです。
値は、Rails Testing が格納されています。
なぜ、凍結状態になっているのかわかりません。
force_encoding をする前に、
ruby
1request.env["HTTP_USER_AGENT"] = 'あいうえお'
と代入しておくと、
request.user_agent.frozen? が false になり、force_encoding もできるようになります。
なぜ、代入前は凍結しているのかわかれば教えてください。
また、代入せずとも、事前に解凍する方法はないでしょうか。
Rails は、5.2.4 です
https://github.com/rails/rails/blob/5-2-stable/actionpack/lib/action_controller/test_case.rb#L32
上記で、user_agent を定義しているようですが、.dub と書いてあるのに、なぜ凍結されているのか不明です。
あなたの回答
tips
プレビュー