【问题标题】:Phoenix mix phx.gen.html generated bad links凤凰混合 phx.gen.html 生成坏链接
【发布时间】:2018-08-01 02:55:05
【问题描述】:

我使用 phx.gen.html 生成了几个控制器、模板等,模板包含构建超链接的代码,如下所示。

<span><%= link "New Priority", to: priority_path(@conn, :new) %></span>

这个生成的链接是复数,即优先级,但是控制器和其他项目都是单数,所以链接不起作用。

首先,如何影响priority_path,和/或第二,如何防止这种情况再次发生?

【问题讨论】:

  • 你用什么确切的mix 命令来生成东西?
  • 混合 phx.gen.html 查找优先级优先级名称:字符串

标签: elixir phoenix-framework


【解决方案1】:

我怀疑您没有将路由添加到您的 router.ex 文件中。

resources("/priorities", PriorityController)

resources("/priority", PriorityController)

get("/priority", PriorityController, :new)

都应该使用priority_path(@conn, :new)

如果您想遵循约定,这将是您将使用的第一个具有复数路径和单数控制器的示例,但您可以使用任何您喜欢的方式,只要控制器和路径辅助函数匹配(PriorityController 和 @ 987654328@ vs PrioritiesControllerpriorities_path),因为路径助手似乎是从控制器名称生成的。

除非你使用:as 选项,它看起来像:

resources("/priorities", PrioritiesController, as: :priority)

会给你priority_path 帮手。而

resources("/priorities", PrioritiesController)

会给你priorities_path帮手。

The docs might help.

【讨论】:

  • 我实际上发现这是一个可能的解决方案并将其添加到我的 router.ex 文件中,但这并没有解决问题。当你生成时,它是否必须在那里,或者在哪里添加它有关系吗?
  • @DannyEllisJr。什么时候添加没关系,但是当你运行你的应用程序时它必须在那里并且你必须重新编译(例如,如果 phoenix 在 dev 模式下运行它不会对路由器进行更改)。
  • 我添加了一个冲突的代码,我需要将资源放在“/”范围内。非常感谢!!!
猜你喜欢
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 2020-08-31
  • 2016-03-20
  • 1970-01-01
  • 2017-07-22
  • 2018-02-03
  • 1970-01-01
相关资源
最近更新 更多