gpt4 book ai didi

elixir - 在 Phoenix 框架上放置辅助模块的位置

转载 作者:行者123 更新时间:2023-12-03 21:35:13 24 4
gpt4 key购买 nike

我想添加一个帮助模块来执行获取请求

http://hexdocs.pm/httpoison/HTTPoison.Base.html

但是当我把 defmodule

/lib/Shopper/CallApi.ex



use

/web.ex


def controller do
quote do
use Phoenix.Controller

alias Shopper.Repo
import Ecto.Model
import Ecto.Query, only: [from: 1, from: 2]

import Shopper.Router.Helpers

use Shopper.CallApi
end

结尾

编译器失败了
== Compilation error on file web/controllers/page_controller.ex ==
** (UndefinedFunctionError) undefined function: Shopper.CallApi.__using__/1
Shopper.CallApi.__using__([])
web/controllers/page_controller.ex:2: (module)

那么......在哪里定义 CallApi.ex 以及我应该在哪里声明它?

最佳答案

当您调用 use Shopper.CallApi , __using__/1调用宏 - 这是特定于元编程的。如果你想使用 Shopper.CallApi 中定义的函数然后在你的模块中使用 alias Shopper.CallApi反而。
alias 之间的区别, requireimport记录在 Alias, Require and Importusing记录在 Domain Specific Languages .

顺便说一句,通常在 elixir 项目中,文件以 snake_case - call_api.ex 命名而不是 CallApi.ex .

关于elixir - 在 Phoenix 框架上放置辅助模块的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com