Phoenix Elixir Canary/Canada未定义函数在尝试访问内部模板视图时可以?3
我试图通过以下示例与一起使用 除了我使用的是Phoenix Elixir Canary/Canada未定义函数在尝试访问内部模板视图时可以?3,elixir,phoenix-framework,Elixir,Phoenix Framework,我试图通过以下示例与一起使用 除了我使用的是Phoenix v1.3.0,而上面的示例(在其canary分支上)仍在使用早期版本的Phoenix 似乎我已经让它工作了(肯定是通过/内部控制器工作),除了我无法从(布局)模板视图中访问Canary或Canada的can?3功能 告诉我这个错误: ==文件lib/my_project\u web/views/layout\u view.ex中的编译错误== **(CompileError)lib/my_project\u web/templates
Phoenix v1.3.0
,而上面的示例(在其canary
分支上)仍在使用早期版本的Phoenix
似乎我已经让它工作了(肯定是通过/内部控制器工作),除了我无法从(布局)模板视图中访问Canary
或Canada
的can?3
功能
告诉我这个错误:
==文件lib/my_project\u web/views/layout\u view.ex中的编译错误==
**(CompileError)lib/my_project\u web/templates/layout/app.html.eex:20:未定义的函数可以?/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:kernel.parallelciler.spawn_compilers/1中的匿名fn/4
我的abilities.ex
文件位于lib
目录中,如下所示:/lib/abilities.ex
可能出了什么问题?如何注册加拿大
/金丝雀
,以便在模板视图中使用它?can?
在加拿大.can模块中定义。错误消息表明您的视图未导入该模块。您链接到的示例项目通过将导入添加到web/web.ex
中的view
函数,在所有视图中导入该模块,您可能忘记了:
:
这是离题的,但连贯性很糟糕,你最好不要使用它。你还有其他建议吗?从你的经验来看,这更好吗?我刚刚想,直接问可能更好,因为我认为这是一个特定的
金丝雀
问题,而不是金丝雀
-连贯性
组合。您是否添加了导入加拿大。您能像这样在web.ex
中的查看
功能中吗!就这样!虽然我一直在跟踪,但我还是错过了。事实上,我错过的是最底层。非常感谢。如果你愿意,请把答案写在下面,这样我就可以接受了。就是这样!这解决了我的问题。非常感谢。
defmodule CoherenceDemo.Web do
def view do
quote do
...
import Canada.Can
end
end
end