首页 > 解决方案 > 凤凰混合 phx.gen.html 生成坏链接

问题描述

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

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

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

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

标签: elixirphoenix-framework

解决方案


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

resources("/priorities", PriorityController)

或者

resources("/priority", PriorityController)

或者

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

都应该与priority_path(@conn, :new)

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

除非您使用该:as选项,否则该选项如下所示:

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

会给你priority_path帮手。然而

resources("/priorities", PrioritiesController)

会给你priorities_path帮手。

文档可能会有所帮助。


推荐阅读