Phoenix Path Helper和Phoenix.Param用于基于日期的URI

时间:2016-07-24 18:59:17

标签: elixir phoenix-framework

在我的凤凰应用程序中,我希望拥有像http://localhost:4000/2016/07/24/这样的URI,它们由结构中的date字段生成。我为我的结构创建了Phoenix.Param impl:

defimpl Phoenix.Param, for: Item do
  def to_param(item) do
  {{year, month, day}, _time} = item.date
  "#{year}/#{month}/#{day}/"
end

哪个按预期工作,但不幸的是(但可以理解)路径助手正在转义该字符串,因此item_path(@conn, :show, item)生成的URI为http://localhost:4000/2016%2F07%2F24%2F

有没有办法让路径助手按原样接受路径而不转义它?我正在挖掘Phoenix.Router.Helpers模块,但没有任何东西向我跳过。

修改:我要补充一点,我目前的解决方法是将我的路线定义为/:year/:month/:day而不仅仅是/:date,并在我的控制器中处理show {{ 1}}功能正常,但我真的更喜欢/:date路线方法。

1 个答案:

答案 0 :(得分:2)

解决方案是使用@conn |> item_path(:show, item) |> URI.decode()

import cPickle as pickle

ml_model = pickle.load(open("SVM_LINEAR","rb"))