凤凰Elixir Canary /加拿大未定义的功能可以在?3时尝试访问模板内部视图

时间:2017-10-27 14:02:48

标签: elixir phoenix-framework

我正在尝试使用CoherenceCanary一起使用此示例coherence_demo with canary

我正在使用Phoenix v1.3.0,而上面的示例(canary' s branch)仍然使用早期版本的Phoenix

似乎我已经让它工作(绝对是通过/内部控制器工作),除了我无法访问CanaryCanada' s {{ 1}}从(布局)模板视图中的函数。

给我这个错误:

can?3

我的 == Compilation error in file lib/my_project_web/views/layout_view.ex == ** (CompileError) lib/my_project_web/templates/layout/app.html.eex:20: undefined function can?/3 (stdlib) lists.erl:1338: :lists.foreach/2 (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6 (elixir) lib/kernel/parallel_compiler.ex:121: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1 文件位于abilities.ex目录中,如下所示:lib

可能有什么问题?如何注册./lib/abilities.ex / Canada以便在模板视图中使用它?

1 个答案:

答案 0 :(得分:3)

can?Canada.Can模块中定义。错误消息表明您的视图未导入该模块。您链接的示例项目通过将导入添加到view中的web/web.ex函数来导入所有视图中的模块,您可能忘记了这些:

In web/web.ex

defmodule CoherenceDemo.Web do
  def view do
    quote do
      ...

      import Canada.Can
    end
  end
end