【发布时间】:2019-06-23 17:50:39
【问题描述】:
在编写 Phoenix 应用程序时,我已经习惯使用如下语法编写链接:link "My profile", to: Routes.user_url(@conn, :show, user)。最近在使用LiveView 时,我意识到你可以在这里传递MyAppWeb.Endpoint 而不是@conn,它的工作原理是一样的。由于(我想)大多数 Phoenix 应用程序只有一个 Endpoint 模块,我有点希望它能够推断出我的默认 Endpoint,这样我就不必每次调用路径/url 助手时都提供 conn/endpoint。这让我想知道为什么 Phoenix 将这些帮助程序设计为始终需要端点,而不是使用一些配置的默认端点。
有谁知道为什么路由助手设计为始终需要连接/端点,并且不允许您配置默认端点?这仅仅是“还没有解决这个问题”的问题,还是有一些重要的原因导致不每次都明确要求 conn/endpoint 会有问题?
【问题讨论】:
-
我不确定,但我猜部分原因来自 Elixir 的“显式优于隐式”的哲学。您可能需要输入一些额外的字符,但您不会因更改配置而意外更改所有路线。
-
我相信 Chris McCord 在此线程中的答案正是您想要的:elixirforum.com/t/conn-or-endpoint-in-path-helpers/934