use*_*037 2 elixir phoenix-framework
我有一个动作:
def my_action(conn, params) do
# ..............
Logger.info("test: params #{IO.inspect(params)};\r\n\r\n")
Run Code Online (Sandbox Code Playgroud)
这将导致异常:
** (Protocol.UndefinedError) protocol String.Chars not implemented for %{"key1" => "var1", "key2" => "var2", # ........}.
This protocol is implemented for: Atom, BitString.................
Run Code Online (Sandbox Code Playgroud)
我理解这是什么意思,但我不明白为什么会这样?我正在使用“检查”。我应该用什么来修复它?
IO.inspect打印该值,然后返回该值。除了打印值,它与写入相同
"test: params #{params};\r\n\r\n"
Run Code Online (Sandbox Code Playgroud)
您需要的是Kernel.inspect或简单地是inspect:
Logger.info("test: params #{inspect(params)};\r\n\r\n")
Run Code Online (Sandbox Code Playgroud)