凤凰城名称上的param与没有名称参数之间有什么区别

时间:2018-02-15 15:06:01

标签: elixir phoenix-framework

如果我在router.ex中写下(A)和(B)这样的参数。

get "/index/:first/:second", IndexController, :index #(A)
get "/index/:first", IndexController, :index #(B)

哪一个应该收集(1)或(2)?

conn |>
  redirect(to: index_path(conn, :index, first: first, second: second)) #(1)

conn |>
  redirect(to: index_path(conn, :index, first, second: second)) #(2)

我不知道要解释的区别。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解了这个问题,但我认为,首先,在连接和动作名称之后,你传递了命名的参数,然后,最后一个参数是查询字符串参数,至此为止我记得。

所以

get "/index/:first/:second", IndexController, :index #(A)

应该是

index_path(conn, :index, first, second)

或者如果你想要一些查询参数:

index_path(conn, :index, first, second, _format: "json")