链接到资源的slug

时间:2017-09-23 14:31:04

标签: phoenix-framework

我有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" %>

1 个答案:

答案 0 :(得分:3)

您需要为模块实施Phoenix.Param协议。最简单的方法是在模块中的schema "..."之前添加以下内容:

@derive {Phoenix.Param, key: :slug}
schema "..." do
  ...
end

现在,不是id,而是在从Phoenix生成的URL帮助程序生成链接时使用slug字段。