Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phoenix Elixir Canary/Canada未定义函数在尝试访问内部模板视图时可以?3_Elixir_Phoenix Framework - Fatal编程技术网

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