Как отладить данные внутри conn.assigns? - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть эта функция внутри моего контроллера, и я пытаюсь выяснить 1) какие данные мне доступны внутри conn.assigns и 2) отладочные переменные.

  def sample(conn, _params) do
    test = conn.assigns.test_data
    render(conn, "sample.html", test_data: test)
  end

Яновичок в кодовой базе Phoenix, поэтому я пытаюсь понять, что уже доступно для меня.

Я уже пробовал: IO.puts(conn.assigns.test_data) IO.puts(conn.assigns) IO.puts(test) Logger.info(conn.assigns.test_data)

Iприходят из земли JavaScript.Было бы идеально увидеть это в консоли браузера.Я не уверен, что эликсир работает так.

1 Ответ

0 голосов
/ 21 сентября 2019

Кроме Logger, который здесь немного выходит за рамки, есть два разных способа выплюнуть данные на консоль.

- IO.puts/2
- IO.inspect/3

Чтобы первый работал, аргумент должен реализовывать протокол String.Chars.

Последний является всеядным и воспринимает буквально все что угодно.

Кроме того, у нас есть Kernel.inspect/2 для преобразования любого термина в String.

Тем не менее, вы можете

IO.inspect(conn.assigns)

и /или

IO.puts(inspect(conn.assigns))
...