我正在尝试在 phoenix 应用程序中实现永久链接。
目标是将 localhost:4000/products/1 更改为 localhost:4000/products/productname
我尝试在 permalinks implementation in rails 上关注 Ryan Bates 的剧集
但无法在 phoenix 中找到模型的 to_param 函数。
请帮忙。
最佳答案
不确定这是否是您所要求的,但您可以这样做:
浏览器堆栈中的 router.ex
get "/products/:product_name", ProductController, :get_product_by_name
product_controller.ex
def get_product_by_name(conn, %{"product_name" => product_name}) do
product = Repo.get_by(Product, name: product_name)
render(conn, "product_info.html", product)
end
如果您希望您的应用程序将基于名称的特定产品作为 html 页面返回,那么这应该就是您所需要的,自然您需要在模板/产品下有一个名为“product_info.html.eex”的 html 页面
关于elixir - 在phoenix框架(elixir)中更改Url以接受字符串而不是id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570612/