defimpl Phoenix.Param覆盖to_param导致(FunctionClauseError)在Phoenix.Param.Rumbl.Video.to_param/1中没有函数子句匹配

nel*_*nic 5 elixir web-development-server elixir-framework phoenix-framework

while试图按照编程凤凰(书)发布P1.0中的示例,
一切正常,直到第167页指示添加行:

defimpl Phoenix.Param, for: Rumbl.Video do
  def to_param(%{slug: slug, id: id}) do
    "#{id}-#{slug}"
  end
end
Run Code Online (Sandbox Code Playgroud)

至: 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
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:https://travis-ci.org/dwyl/learn-phoenix-framework/builds/207901757#L349 图片

添加以下5行时的代码快照:https: //github.com/dwyl/learn-phoenix-framework/pull/42/commits/db72acbe83b184cd6ce3fe342ee51c3e39eb5de8

任何理解这一点的帮助将非常感谢!

注意:我已经尝试了谷歌搜索(一段时间)...
我已经阅读了SO和https://elixirforum.com上几十个类似的问题...
但没有一个是有帮助的.看来我是唯一一个看到这个错误的人!
在放弃编程之前发布StackOverflow问题是我的"最后手段"!:-(
帮助我obi-wan

在"编程凤凰"一书的勘误页面:https://pragprog.com/titles/phoenix/errata有另一个人报告相同代码的问题,但他们的错误是不同的...

勘误表,不是最相同