首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Elixir在page_controller_test.exs中找不到get/2函数

Elixir是一种基于Erlang虚拟机的函数式编程语言,它具有高并发、可扩展和容错性的特点。在Elixir中,page_controller_test.exs是一个测试文件,用于对页面控制器进行单元测试。在该文件中找不到get/2函数的原因可能有以下几种情况:

  1. 语法错误:请确保在代码中正确地定义了get/2函数,并且没有拼写错误或其他语法错误。可以检查函数名、参数和函数体是否正确。
  2. 导入错误:如果get/2函数位于其他模块中,可能需要在page_controller_test.exs文件中导入该模块。可以使用import或alias语句导入模块,并确保模块的命名空间正确。
  3. 缺少依赖:如果get/2函数依赖于其他库或模块,需要确保这些依赖已经正确地安装和导入。可以使用mix.exs文件管理项目的依赖关系,并确保所有依赖都已经正确地添加。
  4. 文件位置错误:如果get/2函数位于其他文件中,可能需要检查文件路径是否正确。确保文件在正确的位置,并且可以被page_controller_test.exs文件正确地引用。

总结起来,要解决在page_controller_test.exs中找不到get/2函数的问题,需要检查语法错误、导入依赖、文件位置等方面的问题。如果以上方法都没有解决问题,可能需要进一步检查代码逻辑和项目配置。关于Elixir的更多信息和学习资源,可以参考腾讯云的Elixir产品介绍页面:腾讯云Elixir产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

elixir:灵丹妙药?or 徒有其名?

最让人爱不释手的是pipe |>,它让你把一层层的逆着你的思维的函数调用变成了更直观的表现,比如说我们常常这么写代码: IO.puts(tabularize(to_map(Store.get_host(...IO.puts(formatted_output) 这样的代码Elixir可以被写成: host |> Store.get_host |> to_map |> tabularize |> IO.puts...老娘/老子Ruby里,或者jquery,经常这么写代码。。。 虽然pipe和chaining表述代码的方式有些类似,但背后的思想不太一样。...见:http://joearms.github.io/2013/05/31/a-week-with-elixir.html 2. Erlang的VM 3....初学者Erlang的世界里很容易找不到北,这个,走过这段路的人都有感受 4. 这一点,我meteor下吃了大亏,我的teamspark写于0.5.x,然后每一次版本升级,就各种crash… 5.

1.4K50

(译) Understanding Elixir Macros, Part 2 - Micro Theory

由于宏也是函数, 而 Elixir 调用函数时可以省略括号, 所以我们可以这样写: Tracer.trace 1+2 这很可能是 Elixir 之所以不在函数调用时要求括号的最主要原因....宏参数 你要记住, 宏本质上是扩展阶段被导入的 Elixir 函数, 然后生成最终的 AST. 宏的特别之处在于它所接受的参数都是quoted 的....2] end [a: 1, b: 2] iex(8)> quote do [a: x, b: y] end [a: {:x, [], Elixir}, b: {:y, [], Elixir}] 第一个例子...理想情况下, 当我们这样做时, 我们不需要关心输入 AST 的内容, 我们的例子, 我们只需要在生成的函数中注入函数体, 而不需要关心函数实际有什么. 测试这个宏很简单....使用模块 观察上述代码, 你可以看到 match/2 的胶水代码存在于客户端模块. 这肯定算不上完美, 因为每个客户端都必须提供对这个函数的正确实现, 而且必须调用 do_match 函数.

11240

Excel公式技巧17: 使用VLOOKUP函数多个工作表查找相匹配的值(2

我们给出了基于多个工作表给定列匹配单个条件来返回值的解决方案。本文使用与之相同的示例,但是将匹配多个条件,并提供两个解决方案:一个是使用辅助列,另一个不使用辅助列。 下面是3个示例工作表: ?...16:使用VLOOKUP函数多个工作表查找相匹配的值(1)》。...解决方案2:不使用辅助列 首先定义两个名称。注意,定义名称时,将活动单元格放置工作表Master的第11行。...C:C"),$B11)>0,0) 名称:Arry2 引用位置:=ROW(INDIRECT("1:10"))-1 单元格C11的数组公式如下: =INDEX(INDIRECT("'"&INDEX(Sheets...D1:D10 传递到INDEX函数作为其参数array的值: =INDEX(Sheet3!

13.5K10

如何在 IntelliJ 上运行 Elixir 和 Phoenix 程序?

这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情 Elixir 是一门非常强大的 函数式 编程语言,Elixir 社区构建了一个插件,该插件可以 Jetbrains 的 IDE...打开 IntelliJ 并点击 New Project,选择创建 Elixir 项目, IntelliJ Ultimate 版本还可以选择数据库。...与 Elixir 项目一样,我们需要先进行运行配置,但是这一次我们要选择 Elixir Mix 因为我们要运行 mix 命令,配置 mix arguments fields 输入 phx.server...External Helps Elixir 和 Erlang 插件 创建 Phoenix 项目使用命令 mix phx.new projectName mix deps.get 命令可以安装相关依赖...首先在 lib/phx_quickstart_web/router.ex 文件增加一个自定义的路由 /zulu,该路由映射到 ZuluController 的 zulu 函数 接着 lib/phx_quickstart_web

1.4K20

Elixir和ScyllaDB教你创建CRUD CLI,惊人的效率提升!

elixir -v好吧,现在我们已经安装好了,我们可以通过终端模拟器输入来测试一切是否正常,我们将得到类似于以下内容的响应:Erlang/OTP 25 [erts-13.2.2.2] [source...好了,现在我们已经定义了依赖项,我们可以终端模拟器运行它:$ mix deps.get上面的命令将安装我们的mix.exs.伟大的!....env;load()我们使用来自库的函数加载变量Dotenv;我们创建了一个名为的函数start_link,它将负责启动与我们的集群的连接链接;函数,我们定义username并password从文件接收这些值...如果您想了解更多信息,请单击此处以更好地了解 Elixir 如何与模式匹配配合使用。命令好吧,现在是期待已久的时刻:我们的应用程序添加负责执行命令的函数!...同一个存储库,您也可以使用 Elixir 访问该项目,因此如果您想查看完整的源代码,请知道它位于上面提到的同一链接!

38230

(译) Understanding Elixir Macros, Part 1 Basics

调用 Plug 的 get 和 match 会创建一个函数, 而 ExActor 的 defcall 会生成两个函数和将参数正确从客户端进程传播给服务端进程的代码....基于文件的数据, 各种函数 (例如 upcase, downcase) 会被生成. 无论是宏还是代码生成, 我们都在编译的过程对抽象语法树做了某些变换....元编程总是会引入一个隐形 (或不明显)的层, Elixir 这只发生在编译时, 并独立于程序的各种执行路径....它们只是描述代码的简单数据, 并没有执行. 这时, 变量 a 和 b 并不存在于当前 Elixir shell 会话 (session)....实际上, 我们是把 expression_ast(quoted 1+2)代入到我们生成的片段(fragment), 将表达式的结果放入 result 变量.

15530

Elixir和OTP面向过程的编程指南

函数式语言中,它可以是函数本身的操作,也可以是由函数传递到函数的不可变数据。...函数范式,没有副作用(side effects),这使得问题确定更容易。纯功能系统的挑战是需要“副作用”才能持续保持状态。...Elixir / OTP和面向过程的编程 Elixir / Erlang和OTP,通信原语是执行语言的虚拟机的一部分。进程之间和机器之间通信的能力建立语言系统的中心。...Elixir或Erlang的任何培训课程必须(通常是)包括OTP,并且应该从一开始就有一个过程方向,而不是“现在你可以Elixir编写代码,所以让我们来做并发”类型的方式。...来自UML的Elixir和面向过程的编程的建议是序列图(图2的例子),以显示进程之间的时间关系,并确定在服务请求过程涉及哪些过程。

1.4K10

思考,问题和方法

上篇文章 Code is Law,我为 Arcblock 的 github repo 定义的一套规范,就是我自己的思想和方法论的产物 —— 你在任何已有的公开的文档找不到类似的做法。它完美么?...更可怕的是,这六个函数不仅仅涵盖了 erlang,似乎也可以解释软件领域里的很多系统 —— 它们无所不在,系统里面的意义就像原力之于星战。 spawn:创建一个资源。...我们想要做的事情的范畴上来看,如果找不到一个更行之有效的开发方式,我们会开发得很累,且开发进度会比较缓慢。...筹划,还未开始) 然后一个 build pipeline 里,生成所有代码。比如生成的 Absinthe 的 query 长这个样子: ?...虽然还有很多问题,但这套系统最大的好处是,开发过程,我们可以随意调整 API 的结构而不必每次调整都苦逼修改很多地方的代码。这在我们对很多 API 的行为还没有一个良好定义的时候,是个莫大的福音。

68500

(译) Understanding Elixir Macros, Part 6 - In-place Code Generation

Elixir Macros 系列文章译文 [1] (译) Understanding Elixir Macros, Part 1 Basics [2] (译) Understanding Elixir... module 中生成代码 正如我第 1 章中提到的那样, 宏并不是 Elixir 唯一的元编程机制. 我们也可以模块中直接生成代码....这允许我们针对某些输入(本例是关键字列表)进行元编程, 并生成代码, 而无需编写专门的宏. 注意, 在上面的代码, 我们如何使用 unquote 将变量注入到函数子句定义....例如, 2, 我们模拟了 Plug 的 get 宏: defmacro get(route, body) do quote do defp do_match("GET", unquote...问题是我们并没有真正传输 {1,2,3} 三元组. 我们将其注入到目标 AST , 注入意味着 {1,2,3} 本身被视为一个 AST 片段, 这显然是错误的.

15340

profiling & Flame Graphs

通过该图,我们可以找到 CPU 占用最多的函数,分析代码热路径。...特征如下: 纵轴:表函数调用栈,上层函数时下层函数的子函数; 横轴:表示 CPU 占用时间,越长表示占用时间越多; 值得注意的是:横轴先后顺序是为了聚合,跟函数间依赖或调用关系无关;一般情况下,火焰图各种颜色是为方便区分...小试一下 Elixir Phoenix Framework & Flame On 根据这篇 Toturial -> Profiling Elixir Applications with Flame Graphs...and Flame On,我们 Phoenix App Telemetry Dashboard 中集成 Flame On,GET 到如下 Flame Graph: Go && pprof Go 内置了...main.go # 生成 cpu.pprof profiling 文件 # 启动 http server 查看分析数据 go tool pprof -http=:8080 cpu.pprof 然后可以 GET

13520

Go 编程 | 连载 11 - 复杂数据类型 Slice

一、切片 Slice Go 语言数组的长度是不可变的,也就无法数组添加元素,Go 提供了另一种长度可变的数组,既切片(动态数组),切片可以进行追加元素,相比数组来说更加灵活。...fmt.Printf("%T, %v, %v", jvm_lans, jvm_lans, len(jvm_lans)) } 执行上述代码,输出结果如下: []string, [Scala Groovy], 2...,而 *内存地址 可以获取内存地址指向的实例,append 函数可以对切片进行追加操作,根据输出结果可以确定,初始化时切片的长度为 1,追加一个元素之后切片的长度变为 2。...make 函数和 new 函数都可以定义切片,它们的区别如下: make 和 new 都是用来分配内存的內建函数,且堆上分配内存,make 即分配内存,也初始化内存;new只是将内存清零,并没有初始化内存...切片是引用类型 数组是值类型,而切片是引用类型,同样可以通过自定义函数修改传入的切片类型的数据来验证切片是引用类型。

47520

(译) Understanding Elixir Macros, Part 3 - Getting into the AST

然而, shell 会话可以很简单地探索和使用 AST, 我通常就是这样探索 AST 结构的....这完全没问题, 因为宏是函数, 这意味着您可以依赖于模式匹配、guards(守卫), 甚至有多子句宏. 我们的例子, 我们依靠模式匹配将比较表达式的每一边(被 quoted 的)带入相应的变量....然后, quoted 的代码, 我们通过分别计算左边和右边重新解释 == 操作(第 4 行和第 5 行), 然后是整个结果(第 7 行)....首先, 模式匹配, 硬编码(hard code) :== 被变量 operator 取代了(第 2 行)....因此, 没有这些 guard 语句, 任何双参数的函数调用都会在我们的宏结束, 这可能是我们不想要的. 使用这个 guard 语句能将输入限制已知的二进制运算符. 有趣的事情发生在第 9 行.

13850

颠覆者的游戏:程序语言

90年代阴差阳错互联网浪潮成长起来的java成了一个颠覆者。初期定位在家电产品的java,如果不是赶上互联网第一浪的好时候,早不知道死几回了。...这是语言发展过程不断复杂化之后必然的反弹过程 —— 如今,但凡一个支持模版的面向对象的语言,不管有没有类型推定(type interence),代码抽象和泛化两头撕扯一阵,感觉已经处在六道轮回中,...lisp的诸多思想,代码即数据,数据即代码,是最具破坏性的。通过 quote,unquote,代码的语法树上辗转腾挪,你几乎是以上帝视角来撰写程序。...而elixir的做法和上面商城的例子一样,暴力到令人发指:它打开一个含有所有字符大小写对应关系的unicode.txt,读取其中的信息,在编译时生成几十k个这样的函数: defp do_upcase("...见: http://en.wikipedia.org/wiki/Write_once,_run_anywhere 2. 被盖子欺负的满地找牙的复仇者联盟 3. 原文链接找不到了 4.

1K80

继续探索with语句

在上一篇博客《漂亮的with,鱼与熊掌可以兼得》,展现了with的优雅之处,然而在比较with与|>时,言犹未尽,讲得不够透彻。...在那篇博客,我说: 毕竟with/1并不是try/catch,它并不能捕获执行抛出的错误,然后转向else进行错误处理。只有当模式匹配出现错误时,才会转向else。...要优雅地处理错误,并用优雅的with/1将逻辑串联起来,就需要重构get_user,get_response,send_response等函数。...因为Elixir函数的定义使用了模式匹配,因此,定义参与|>操作的函数时,可以通过模式匹配来考虑各种情况,这其中可以包含对{:error, error}情形的处理,使得数据流不至于流经该函数时因为错误而崩溃掉...Joseph Kain博客Learning Elixir's with给出了一个例子,执行了ecto查询: defp results(conn, search_params) do conn.assigns.current_user

70070
领券