terminal - Phoenix : How to get conn %Plug. Conn{} 在控制台中

标签 terminal elixir phoenix-framework plug


iex -S mix phx.server

我想在 iex 终端做一些快速测试,但有些函数需要 struct %Plug.Conn{} 作为参数,例如我想得到表达式的结果:
MyAppWeb.Router.Helpers.confirmation_url(%Plug.Conn{}, :edit, "12345")

但我有错误:
Phoenix endpoint not found in %{}

有没有一种在控制台中获取 conn struct 的简单方法?

最佳答案

路由器辅助函数接受 conn 或端点模块作为第一个参数。当您想要生成没有连接的 URL 时,可以传递应用程序的端点模块:

MyAppWeb.Router.Helpers.confirmation_url(MyAppWeb.Endpoint, :edit, "12345")

编辑:如果您想创建一个与路由器助手一起使用的虚拟 conn,那么放置 %{phoenix_endpoint: MyAppWeb.Endpoint} 似乎就足够了。 conn.private 中的值从 Phoenix 1.3 开始:
conn = %Plug.Conn{private: %{phoenix_endpoint: MyAppWeb.Endpoint}}
MyAppWeb.Router.Helpers.confirmation_url(conn, :edit, "12345")

关于terminal - Phoenix : How to get conn %Plug. Conn{} 在控制台中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45907381/

相关文章:

c - Linux 中的终端屏幕快捷方式

linux - UNIX 中的可选命令

phoenix-framework - Phoenix Controller 测试,设置请求主机

elixir - 使用 Ecto,如何构建一个查询来返回出现在两个单独关联中的结果?

postgresql - Phoenix/Elixir - 时间戳不存在,扩展为 timestamps()

macos - 将代码粘贴到终端窗口到 Mac OS X 上的 vim 中

shell - 如何编写像Top这样的交互式程序?

elixir - 如何访问 Elixir 中的当前模块

elixir - 卡在迁移中,如何修复 IO.chardata_to_string/1

webpack - 不死鸟添加 Assets 的最佳方式