【问题标题】:In Elixir/Phoenix what does `as: :pages` do?在 Elixir/Phoenix 中,`as: :pages` 做了什么?
【发布时间】:2014-10-10 17:08:14
【问题描述】:

在Elixir 的Phoenix web 框架中,get "/pages/:page", PageController, :show, as: :pages 中的as: :pages 有什么作用?第二,什么是as:,一个宏?地图?

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    as: 选项允许您自定义我们生成的命名路由器辅助函数以重新创建定义的路由。即来自文档:

    命名助手也可以使用:as 选项进行自定义。给定 路线:

      get "/pages/:page", PageController, :show, as: :special_page
    

    命名的助手将是:

      MyApp.Router.Helpers.special_page_path(:show, "hello")
      "/pages/hello"
    

    as: 在这种情况下是路由器宏的一个选项,而不是宏本身。

    【讨论】:

    • 查看我认为的文档,帮助程序用于从代码内部访问路由,而无需通过路由器。那是对的吗?例如。如果我想重新路由到另一条路径?
    • @stoft 助手是一个为你生成路径的函数。因此,您可以使用帮助程序代替硬编码路径,该帮助程序将通过插入参数并保证它确实存在来生成 URL。例如,假设您将“/pages/:page”重命名为“/my/pages/:page”。如果您对 URL 进行硬编码,现在您的应用程序中的链接会损坏。通过使用帮助程序,一旦您重新编译代码,URL 将是正确的。如果 URL 被删除,您会收到编译错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 2021-03-16
    相关资源
    最近更新 更多