Elixir 无法更新哈希值

我有一个结构,它有一个嵌套键和另一个结构列表,我想用新值更新该嵌套键值 source = get_data # source.key1 is an array of structs source.key1 = Enum.each(source.key1, fn(x) -> # error is here at "=" # ... end) 错误是: cannot invoke remote function source.key1/0 inside match 这两者都不是:

Elixir 如何标记模块以使其不受';你没有被编译吗?

运行mix.compile时,是否可以不编译在lib目录下找到的模块或文件 如果是这样的话,我该怎么做,或者至少在Mix的源代码中我可以在哪里找到答案?您可以给它扩展名.exs?但问题是:为什么有些东西不应该在lib中编译?也许你想把它放在别处?我同意何塞的看法。这是什么用例?在目录中有长生不老药代码而不将其作为应用程序的一部分似乎很奇怪。

使用Elixir的ftp会话示例?

我一直在搜索文档,但我无法用长生不老药完成ftp。有人能帮我举一个工作示例吗?有一个示例演示如何使用Erlang FTP客户端库。以下是对长生不老药的(未经测试)翻译: :inets.start {:ok, pid} = :inets.start(:ftpc, host: 'erlang.org') :ftp.user(pid, 'guest', 'password') :ftp.pwd(pid) :ftp.cd(pid, 'appl/examples') :ftp.lpwd(pid) :ftp

连接属于Elixir Exto中两个数据库的两个表

在Elixir中,使用EXTO可以连接属于不同两个数据库的两个不同表(在同一主机中) 此查询中有两个数据库,分别称为cloud和cloud\u usage 当我执行查询时,我应该使用哪种回购 Billing.CloudUsage.Repo.all(查询) 或 Billing.Cloud.Repo.all(查询) 我知道为什么会这样。但是如果我使用Billing.Cloud.Repo.all(query),我想我很难检索Cloud\u usage.Cloud\u usage表中的数据。反之亦然 参

如何运行Elixir应用程序?

运行Elixir应用程序的正确方法是什么 我正在通过以下方式创建一个简单的项目: mix new app 然后我可以做: mix run escript: [main_module: App] 基本上只编译一次我的应用程序。所以当我加上: IO.puts "running" 在lib/app.ex中,我第一次看到“running”,除非有一些更改,否则每次连续的运行都不会执行任何操作。使用生成的app.app,我接下来可以做什么 我当然知道我能做到: mix run escript:

Elixir 使用长生不老药生成头像的首字母

我正在研制长生不老药,并希望能提供化身服务。如果用户没有头像,希望制作一个上面有他们姓名首字母的头像,如下所示: 我真的一点也不知道从哪里开始,或者怎么做。使用。这是一个Elixir ImageMagick集成。您可以使用它来完成此操作。只需通过调用convert命令并将选项传递给它即可。下面是一个简单的例子,如何生成与您发布的图像相似的图像。我将把微调留给你 def generate(outfile, initials) do size = 512 resolution = 72

Elixir 使用Phoenix.Router自定义HTTP谓词

如何使用phoenix框架在elixir应用程序中启用自定义HTTP谓词 我可以看到如何在中创建宏get,post等。然而,可能是由于使用了嵌套的宏体系结构,我无法使用如下路由器定义实现自定义HTTP谓词,例如bla: Phoenix.Router.Scope.route Ical.Router, :match, :bla, "/bla", PageController, :bla, [] 虽然不会导致编译器错误,但在执行BLA/BLA HTTP/1.1请求时会生成404 它甚至在尝试使用模拟

Elixir 在生产环境中部署Phoenix应用程序时出错

我试图在VPS中以生产模式启动Phoenix应用程序(在开发模式下可以),因此,在编译应用程序资产后,我运行: PORT=4001 MIX_ENV=prod mix phoenix.server 我得到: ** (Mix) Could not start application myapp: could not find application file: myapp.app 我该怎么办?使用prod环境,您需要显式编译应用程序。它不会被自动编译-这是mix.exs中build\u embe

Elixir 如何使用;加上;长生不老药中的关键字和它的用途?

在Elixir1.2中,他们包含了关键字“with”,但我并不完全清楚它的用途 在管道中使用函数时,在Elixir 1.2之前的版本中,您必须使用monad库或nest case语句(可以使用私有函数进行重构,但最终仍然会很冗长)。允许以不同的方式解决此问题 以下是来自以下方面的示例: case File.read(path)do {:好的,二进制}-> case:beam_lib.chunk(二进制,:abstract_代码)do {:好的,数据}-> {:好的,换行(数据)} 错误-> 错误

Elixir 将十六进制字符串转换为整数

我有一个十六进制值包,我正试图处理它。它们以一条线的形式出现。例如,数据包的一部分是C0,它是192。但是,我不太确定如何将字符串值转换为整数值 如果我使用这个: Base.decode16!(“C0”) # 。。。我得到一个二进制文件 我认为提取这个整数值的唯一方法如下: =Base.decode16!(“C0”) x # 192 这是可行的,看起来有点习惯,但我对长生不老药还不太熟悉,有点不确定这是否是最好的解决方案。如何在Elixir中将字符串十六进制值转换为整数?您可以通过以下方式

Elixir 我如何在EXTO中更新关系?

我有这样的订阅 defmodule Rebirth.Subscription do use Rebirth.Web, :model schema "subscriptions" do ... belongs_to :user, Rebirth.User ... end ... def update_user(model, params \\ :empty) do model |> cast(params, @required

Elixir 查找采用行为的所有模块

是否有可能找到采用了特定行为的每个已加载模块 我正在构建一个非常简单的聊天机器人,我想制作一些很酷的命令,但要实现这一点,我需要一种实现多个命令的方法,最好不用硬编码 每个命令都是一个函数,它接受三个参数(message、author、chat\u channel\u ref)并返回true或false,无论它是否匹配并执行某些操作 当我浏览Elixir教程时,我发现如果我能找到所有采用它们的模块,它可能会很好地满足我的需要。你们以前有人做过吗?我还能做什么?我还考虑过“使用”(在使用中,我会执

Elixir 运行EXTO迁移时出错

我对长生不老药和凤凰是个新手。我试图用mix-exto.migrate为几个迁移文件运行迁移,但它抛出了这个错误 18:27:24.471 [info] == Running FatLobster.Repo.Migrations.CreateRecipeTable.change/0 forward ** (Ecto.MigrationError) cannot execute command outside of block (ecto) lib/ecto/migration/runn

Elixir 如何使用join组合EXTO查询

我有三种型号User,Group,UserMembership 它们之间的关系是密切的 defmodule Samajika.Group do has_many :user_memberships, MyApp.UserMembership has_many :users, through: [:user_memberships, :user] end UserMembership模型有一个type列,用于存储成员资格的类型。例如,它可能存储所有者,租户等 现在我想查询组,并获取其成员

Elixir 长生不老药和功能输入验证

我正在努力学习长生不老药(但主要是函数式编程) 我正在实现一个非常简单的GenServer,它基本上包装了一个条目列表。每个参数的最大条目数和最大大小(字节)受到限制(配置文件) 我知道这看起来很简单,但基本上我正在尝试找到一种优雅的功能性方法来实现这一点。我的头脑是程序化的,我总是在一个“嵌套的if-else-hell”中使用=操作符,就像它是C操作符一样 thx我所知道的验证多个参数的最干净的方法是exto及其变更集。您可能想要实现非常类似的东西 创建包含值和验证错误的数据结构 使所有验证函

邮寄至Slack API Elixir

我正在尝试使用HTTPotion发布到slackapi。我遇到了一个关于它的问题,它为我指明了正确的方向,但我不断地犯错误: HTTPotion.Response{body: "invalid_payload", ... 我的代码是 HTTPotion.post "https://hooks.slack.com/services/T00000000/B0000000/xxxxxxxxxxxxx", [body: "{'channel': '#elixir', 'username': 'elix

如何使用exrm在集群上推出新的Elixir版本?

我有一个简单的elixir应用程序在一个节点上运行,exrm在需要时通过升级/降级来正确地完成他的工作 我最近决定创建两个节点(它将在两台独立的机器上,但我想先在本地主机上测试它) 所以我读了下面克里斯·麦考德的文章 我现在有两个节点 n1@127.0.0.1 及 n2@127.0.0.1 在混合配置中添加以下内容 config :kernel, sync_nodes_optional: [:"n1@127.0.0.1", :"n2@127.0.0.1"], sync_nodes_ti

Elixir 如何在EXTO查询中使用插值字段?

显示了如何执行插值值。但我的查询中需要动态字段。我有几十个字段,为每个字段编写的查询似乎都不连贯 defmodule Hedone.SearchController do use Hedone.Web, :controller alias Hedone.User def idade(conn, %{"idade+" => maior, "idade-" => menor, "campo" => campo}) do IO.inspect campo

Elixir 在预加载中添加GROUPBY子句

我有一个模型,它通过HABTM联接表具有多对多关联。然而,我的联接表并没有唯一地映射我的行,因此我需要添加一个group_by子句来获取我的唯一行 使用Repo.preload时,是否有方法通过表达式添加分组 Repo.get!(P1, p1_id) |> Repo.preload(:c0) 生成的查询: SELECT c0.*, p1."id" FROM "c0" AS c0 LEFT JOIN "p1" AS p1 ON p1."id" = 2 LEFT JOIN

Elixir 未定义函数的长生不老药

长生不老药初学者在这里。我正在尝试从iex运行hello world elixir脚本 该脚本是一个基本的hello world示例 IO.puts "Hello World!" 我从iex运行以下命令 iex(1)> elixir hello.exs 并获取以下错误: ** (CompileError) iex:1: undefined function elixir/1 不知道我为什么会出错,如果有任何帮助,我们将不胜感激。谢谢所以答案不会隐藏在评论中: 您应该从shell运行e

如何在Elixir Phoenix框架中指定URL中参数的格式?

如何在URL中指定特定参数的格式?例如,对于此URL:my_website.com/users/123我希望URL中的user\u id参数为整数和正 我该怎么做?它是通过正则表达式通过web/routes.ex完成的吗?这在凤凰城的路由器中是不可能的,因为路由器的实现方式——它只能将路径段(介于/之间的文本)与精确的常量字符串、带有常量前缀的字符串或任何字符串匹配。您可以在控制器操作中手动检查它,如下所示: def show(conn, %{"user_id" => user_id})

如何将日期和时间字符串解析为与Elixir';兼容的类型;什么时候开始?

在我的Phoenix应用程序中,我有一个带有日期/时间字段的表单,该表单将日期时间值按以下格式放入参数中: 2016-11-30 20:00 我可以使用库解析它: 其结果是: {:ok, ~N[2016-11-30 20:00:00]} “~N[2016-11-30 20:00:00]”是一个“原始”日期时间值,不包括时区。问题是:此值类型与exto.DateTime不匹配,所以我无法将其放入变更集中并保存到数据库中 问题:如何将字符串中的日期和时间解析为具有特定时区(例如美国/东部)的EX

Elixir 在何处放置Phoenix控制器,用于同时具有web前端和API的应用程序

我正在学习Phoenix/Elixir,并试图找出如果您的应用程序同时使用web作用域和api作用域,那么正确的约定是什么。此时,我为API创建了另一个控制器,DatapointApiController,它位于与web视图控制器相同的目录中,DatapointController 我很确定关于如何处理这件事有一个惯例?在哪里放置API范围的控制器更合适,在项目中应该放在哪里 我的router.ex文件应提供足够的上下文: defmodule Web.Router do use Web.We

从elixir应用程序的发行版进行异位迁移

我已经发布了我的elixir应用程序。 当应用程序启动时,它开始使用DB运行受监督的任务 数据库未迁移时,任务保留错误,应用程序终止 我读了,并试图实现迁移功能,但失败了,因为需要启动应用程序来加载应用程序的配置,它使命令终止 当我运行应用程序.get_all_env(:my_app)而不启动我的应用程序时,它返回空列表[]。 是否可以运行exto.Migrator.run(MyApp.Repo,path,:up,all:true)而不启动应用程序?使用application.load(:my_

Elixir Phoenix endpoint config-使用多个子命令强制HTTPS

我正在设置一个Phoenix应用程序,该应用程序为来自同一端点的多个子域提供服务。它所做的只是使用一个插件,根据请求的子域,在端点插件的末尾选择一个不同的路由器。一切正常 问题在于force_ssl配置 我的端点配置如下所示: config :frontend, Frontend.Endpoint, on_init: {Frontend.Endpoint, :load_from_system_env, []}, url: [scheme: "https", host: "myapp.co

如何在Elixir中将数字格式化为精确值?

使用长生不老药最直接、最有效的方法是什么 Starting number: 123.101 Ending number: 123.101000 # Adding 3 digits to the precision of a float. Starting number: 123 Ending number: 123.000 # Adding 3 digits to the precision of an integer. Starting number: 123.101 Ending

在Elixir中将整数转换为原子

在Erlang中,可以编写'1'以获得名为atom的整数。Elixir使用语法:来定义原子,但是:1不可能: iex(1)> :1 ** (SyntaxError) iex:1: unexpected token: ":" (column 1, codepoint U+003A) Elixir中有没有生成名为atom的整数的方法?您可以将1放在引号中,并在前面加上前缀:以获得Erlang中的'1'的等价物: iex(1)> :"1" :"1" iex(2)> :'1' :"1

使用Elixir框架模拟XML响应

我的HTTP请求的响应主体是XML。XML非常复杂,可能包含双引号。 我想通过在代码中提供一个典型XML响应的示例来模拟响应。我似乎找不到将XML作为简单字符串提供的方法。 下面是一个XML开头的例子,它会给长生不老药带来很多痛苦: <Title xmlns="http://website/namespaces/thing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" .... > HTTPoison的主体响应为主

Elixir 长生不老药是否有`内核.delete_'等效物?

Elixir对于在嵌套结构的深处添加或更新值非常有用。但是,它不支持删除该值,而且我在的任何地方都看不到delete\u 是否存在中的delete\u、中的pop\u或其他等效项?差不多 def delete_in(data, keys) do put_in(data, keys, :magic_value_that_deletes_the_final_key) end 如果没有它,添加和更新函数看起来就像漂亮的管道,但是删除或弹出函数看起来不那么整洁。是的!将函数作为第三个参数,根据

重要性。在Elixir函数编程中的匿名函数中

我是新手。在“函数”部分联机浏览时,我发现了匿名函数。在匿名函数中,函数定义如下 iex> sum = fn (a, b) -> a + b end iex> sum.(2, 3) 5 我的问题是调用匿名函数时使用的重要性是什么 使用很容易解释 通过示例进行解释,您必须使用向编译器指示sum是一个标识符,用于描述包含函数引用的变量,而不是一个标识符,用于描述具有正常数据类型或命名函数的变量 因此,当您看到使用点语法调用函数时,您将知道它是一个匿名函数,而不是试图查找

Elixir 在发送json响应时,如何避免在phoenix中进行json解码?

例如,我有一个API客户机,它返回json(作为字符串,未解码)。现在,我不得不做这样的事情 def show(conn, params) do {:ok, json} = ApiClient.fetch(params["options"]) json conn, Poison.decode!(json) end 如果我避免中毒。解码,那么响应将是一个巨大的字符串而不是json。我能不能略去毒药。以某种方式解码?对我来说,这似乎是一种过分的行为 注意:我使用的是phoenix 1.3

Elixir 测试时导致问题的任务

我目前有一名主管,负责监督一些任务。该任务负责异步发送电子邮件和更新数据库。我正在测试一个函数,该函数将启动这些任务,尽管该任务与测试无关 当我运行测试时,我看到STDOUT中打印了exto.stalentryerror。我相信这是因为在测试完成后,但在任务运行之前,Ecto将删除记录。当它试图更新记录时,它不存在,因此会发生exto.stalentryError 作为旁注,测试没有失败。它只打印堆栈跟踪 我不确定是否应该尝试以某种方式阻止任务执行,或者是否有其他方法。这是一个完美的任务用例 让

Elixir 具有多个虚拟机的自动EXTO迁移?

我在需要访问同一Postgres数据库的不同Erlang VM实例中有N个非Erlang PID的工作进程,其中N>=2。当这些工人升级时,我希望能够自动运行Ecto迁移,这样当我对这些工人进行升级时,我就不必经历停止所有工人、运行迁移、重新启动所有工人(如果可能的话)的过程。然而,当我思考这个问题时,我能想到的唯一解决方案是: 请另一名工作人员专门执行迁移。这是我最终可能使用的路径。 使用[insert NoSQL db here]代替Postgres。我宁愿不这样做。 提出一种策略,在工作节

Elixir 从用户令牌创建关联

我有一个用承载令牌进行身份验证的API。我想将令牌解码为用户id,查找一个用户,并将该用户添加到他们在post请求中创建的项目中 我使用如下硬编码用户使项目环境中的一切正常工作: def changeset(%Project{} = project, attrs) do project |> cast(attrs, [:name, :url]) |> validate_required([:name, :url]) |> put_assoc(:u

Elixir 凤凰卫视API列表

我想要一个端点/api/api_endpoints/列出所有公共api端点。类似于mix phx.routes,但我只想列出如下内容 ... GET /api/users PUT /api/users/name ... 诸如此类的事情。我查看了文档,但没有看到任何列出路线的内容。没有内置任何内容,但对于像您希望的那样简单的内容,您可以随时滚动自己的路线。所有路由都作为Phoenix.router.Route stucts列表存储在路由器中。例如,在名为“住宅”的项目中: 您可以映射它们,提取动

如何在Elixir中从地图集中的坐标(如0,0)打印栅格?

我正在学习长生不老药通过建立一个简单的井字游戏。现在我设置它的方法是在棋盘上有玩家选择单元,如{col,row}所以{0,0},{1,2}等等。所有的移动都存储在一个名为turns的地图集中 %TTT{turns: %{x: MapSet.new, o: MapSet.new}, last_player: :player} 我已经完成了基本游戏逻辑的实现,但是我很难尝试构建一个简单的游戏命令行表示,尤其是在显示棋盘的当前状态时。有什么建议吗?对于基于坐标的板,我通常使用{col,row}键将板

Elixir 在变更集属性进入数据库之前对其进行转换

我在Elixir表单中添加了一个textarea,并将该值设置为string,并将该字符串放入数据库元数据列中,该列属于jsonb类型。text区域中的字符串我希望按新行拆分,并存储一个字符串的数组,而不是一个大字符串 我已经改变了类型如下 field :names, {:array, :string} 但是,我不确定如何使用Ecto截取这些数据,并在数据进入数据库之前将其拆分 我看过: 文件 博文 似乎我可以在模式中添加验证函数,这是我的尝试 def changeset(schema

Elixir 如何在长生不老药中堵塞管道? 背景

我有一个应用程序,是一个与牛仔和使用插头的网络服务器。由于这个应用程序是继承下来的,使用凤凰城是不可能的,除非我们重新制作整个程序,这是不可能的 我的目标是,不要把所有东西都放在一个大文件中,而是用几个插头通过管道连接起来 代码 假设我有一个主路由器插头,看起来像这样: defmodule MyApp.Web.Router do use Plug.Router plug(:match) forward "/check", to: MyApp.Route.Check forwa

Elixir 长生不老药&x27;s GenServer句柄调用、句柄信息、句柄强制转换未被调用

我已经实现了一个简单的应用程序->DynamicSupervisor系统,其中应用程序在启动时创建一个DynamicSupervisor,然后向其发送一条消息以开始一些工作。问题是没有一条消息(通过GenServer的cast、内核的send)被捕获。尝试GenServer.call()会引发以下错误 DynamicSupervisor.handle\u调用/3中没有匹配的函数子句 这是奇怪的,因为我已经实现了它(根据该规范)。我确信DynamicSupervisor模块启动后不会退出 应用模块

Elixir 如何在函数的参数中对JSON进行分解/解码?

我对长生不老药非常陌生,正在尝试构建我的第一个端点。我刚刚用mix phx.new安装了一个新应用程序,并创建了我的第一个控制器 defmodule AuthWeb.AuthController do use AuthWeb, :controller def login(conn, params) do IO.puts(inspect(params)) redirect(conn, external: "https://google.com") end end 使

Elixir 1.9中的Elixir配置文件?

只是好奇,因为配置已经从Elixir1.9中删除。我不完全理解在Elixir中加载配置文件的首选方法。对于开发,我应该仍然创建config/config.exs吗 只要您使用mix,配置都是相同的,这意味着在开发阶段您仍然可以使用旧的配置 这些更改是在与distillery一起部署时引入的。添加了运行时配置,而不是编译时配置 这样做的好处是,每次重新启动服务器时,您都可以根据一些变量(通常是环境)生成新的配置 您仍然可以使用旧的配置,但是您很快就会发现运行时配置功能更强大。您可以在我的一篇文章中

Elixir 外键数组(凤凰城)

我是网络开发的初学者,请原谅我知识的缺乏 我有一个老师和一个学生外部模式。它们应该通过另一个名为Class的模式通过以下规则链接: 每个班级只有一名教师,并且有一组学生 每个老师都可以参加许多课程 每个学生都可以参加许多课程 以下是我迄今为止构建的模式: # Part of student.ex schema "students" do field :active, :boolean, default: false field :birthday, :date field

Elixir 未定义函数EXTO.ChangeSet.cast_assoc/3(模块EXTO.ChangeSet不可用)

我对长生不老药、凤凰和埃克托还不熟悉,所以我正在学习一个视频教程。本教程通过模式为用户设置凭据,每个用户都有一个唯一的凭据。所以我有一个用户: defmodule Foo.Accounts.User do use Ecto.Schema import Ecto.Changeset alias Foo.Accounts.Credential schema "users" do field :name, :string field :user

Elixir 如何将事件直接从Phoenix Live View发送到组件

我有一个关于Phoenix LiveView组件(v0.15.4)的问题 在文档中,有一个示例代码: def handle_info({:updated_card, card}, socket) do send_update CardComponent, id: card.id, board_id: socket.assigns.id {:noreply, socket} end LiveView组件没有handle\u info/2回调,因此调用send\u update/3将事件从

Elixir Phoenix LiveView表单中的动态选择标记

在具有3个select标记的phoenix LiveView表单中,第一个标记会影响其他两个标记,即从属两个标记应仅显示第一个标记可用的选项,如下所示: <%= f = form_for @changeset, "#", id: "eval-form", phx_target: @myself, phx_change: "validate", phx_submit: "save" %> <%=

Elixir 如果应用程序环境发生变化,如何使库代码重新编译?

我正在编写一个Elixir库,它的行为在很大程度上取决于用户提供的字典文件。我在编译时处理文件,如下所示: defmodule SomeModule do @dictionary Application.get_env(:some_lib, :dictionary_file) |> do_some_processing ... end 父项目可以指定在其config.exs中使用哪个字典文件: config :some_lib, dictionary_file: "/

Elixir 如何对mix.exs中定义的别名进行描述?

当我在mix.exs中定义别名并运行mix-help时,它只是将其描述显示为“在mix.exs中定义的别名” 例如,假设我有一个mix.exs: defp aliases do [ play: "run --no-halt" ] end 然后,mix help命令显示如下任务列表: ... mix local.rebar # Installs Rebar locally mix new # Crea

上一页 1 2 ...  27   28   29   30    31   32   33  ... 下一页 最后一页 共 125 页