【发布时间】:2017-05-08 12:47:56
【问题描述】:
在我的 Phoenix 应用程序中,我想将查询字符串添加到 URL:
some_cool_path(@conn, :index, "view-mode": "table")
我预计它会生成一个类似/some_cool?view-mode=table 的 URL,但它却抛出了一个异常:
protocol Phoenix.Param not implemented for ["view-mode": "table"]
我该如何解决这个问题?
【问题讨论】:
-
你能把你定义这条路由的路由器代码贴出来吗?
-
@Dogbert,只是一条普通路线
get "some_cooll", Controller1, :action1 -
如果您的控制器和操作名称正确,则您的代码是正确的。该错误消息表明该路由实际上在 URL 中有一个强制参数。
post_path(MyApp.Endpoint, :index, "view-mode": "table") #=> "/posts?view-mode=table"。您能否将生成some_cool_path助手的确切行粘贴到路由器中? -
@Dogbert,没问题,我已经修好了。
-
你确定吗?如果您手动编码查询并像下面的答案一样传递,您可能会得到
/some_cool/view-mode=table,即不是查询字符串。