我正在尝试使用Coherence与Canary一起使用此示例coherence_demo with canary。
我正在使用Phoenix v1.3.0
,而上面的示例(canary
' s branch
)仍然使用早期版本的Phoenix
似乎我已经让它工作(绝对是通过/内部控制器工作),除了我无法访问Canary
或Canada
' 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
以便在模板视图中使用它?
答案 0 :(得分:3)
can?
在Canada.Can
模块中定义。错误消息表明您的视图未导入该模块。您链接的示例项目通过将导入添加到view
中的web/web.ex
函数来导入所有视图中的模块,您可能忘记了这些:
defmodule CoherenceDemo.Web do
def view do
quote do
...
import Canada.Can
end
end
end