我有Country
:
mix phx.gen.html Location Country countries name slug:unique
要链接到Country
我想使用slug
而不是id
。如何实现此代码将链接到slug
(例如http://localhost:4000/countries/germany
)?
<%= link "Show", to: country_path(@conn, :show, country), class: "btn btn-default btn-xs" %>
答案 0 :(得分:3)
您需要为模块实施Phoenix.Param
协议。最简单的方法是在模块中的schema "..."
之前添加以下内容:
@derive {Phoenix.Param, key: :slug}
schema "..." do
...
end
现在,不是id
,而是在从Phoenix生成的URL帮助程序生成链接时使用slug
字段。