while
尝试按照Programming Phoenix (book) release P1.0中的示例进行操作
一切正常,直到指示添加行
defimpl Phoenix.Param, for: Rumbl.Video do
def to_param(%{slug: slug, id: id}) do
"#{id}-#{slug}"
end
end
至:rumbl/web/models/video.ex
在添加行之前,测试通过(按预期):
https://travis-ci.org/dwyl/learn-phoenix-framework/builds/207894163#L384
但是一旦添加defimpl
,测试就会失败:
https://travis-ci.org/dwyl/learn-phoenix-framework/builds/207901757#L349
两个失败测试的错误消息是:
** (FunctionClauseError) no function clause matching in Phoenix.Param.Rumbl.Video.to_param/1
堆栈追踪:https://travis-ci.org/dwyl/learn-phoenix-framework/builds/207901757#L349
添加以下5行时的代码快照: https://github.com/dwyl/learn-phoenix-framework/pull/42/commits/db72acbe83b184cd6ce3fe342ee51c3e39eb5de8
理解的任何帮助很多赞赏!
注意:我尝试过谷歌搜索(一段时间)...
我已经阅读了关于SO& S的几十个类似的问题。 https://elixirforum.com ...
但没有人有帮助。看来我是唯一一个看到这个错误的人!
在放弃编程之前发布StackOverflow问题是我的“最后手段”! :-(
在“编程凤凰”一书的勘误页面上:https://pragprog.com/titles/phoenix/errata还有另一个人使用相同的代码报告问题,但他们的错误不同......