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
 Elixir_IT技术博客_编程技术问答 - 「Fatal编程技术网」

Elixir中是否有归纳图的实现?

所谓“归纳图”,我指的是一种纯粹的功能性数据结构,如本文所述:web.engr.oregonstate.edu/~erwig/papers/icpivegraphs_JFP01.pdf 更具体地说,我只对以这种方式实现的DAG感兴趣,尽管我认为一般的方法是类似的 对于Elixir,我没有见过类似的东西,但是有一个Erlang实现:。对于Elixir,我没有见过类似的东西,但是有一个Erlang实现:。又一次投票支持有向图!我们也只是使用长生不老药。虽然值得一提的是,有向图使用ETS,它不是纯粹的

Elixir 哈希集未更新

我正在尝试编写一个网络爬虫,需要跟踪访问的URL。为了做到这一点,我已经尝试使用哈希集,但我一直无法用新的URL更新它 defmodule Crawl do @depth 2 @doc """ Starts crawling process """ def start(url) do visit(url, @depth, HashSet.new) end defp visit(url, 0, cache) do end defp visit(u

Elixir 外部模型变更集错误

我有一个带有字符串字段的模型,该字段必须至少有两个字符长: def changeset(model, params \\ :empty) do model |> cast(params, @required_fields, @optional_fields) |> validate_length(:name, min: 2) end 问题在于,正确填写changeset.errors后,返回: [name: {"should be at least %{count} c

Elixir 编译错误菲尼克斯外星

我试图使用当前版本的phoenix/elixir/etc来学习本教程:但我发现phoenix\u-eTo的编译错误 版本如下: [mariano:~/phoenix/realtime_todo]$ git remote -v origin https://github.com/phoenixframework/phoenix.git (fetch) origin https://github.com/phoenixframework/phoenix.git (push) [mariano:

Elixir 如何在Phoenix框架中呈现原始html

我正在尝试这样呈现原始html-> <%= raw "<noscript>\n <div style=\"width: 302px; height: 422px;\">\n </div>\n </noscript> \n\n\n" %> 这显然不是我想要的。我错过了什么?为什么要转义noscript中的内容?将此字符串呈现为html的正确方法是什么?这不是Phoenix的问题。这就是chrome在编辑为html时的处理方式。你可以看到

如何在Elixir中访问当前模块

假设我有一个模块MyApp.User,它有以下方法: def update_some_counter(user) do from(u in MyApp.User , where: u.id == ^user.id) |> Repo.update_all(inc: [some_counter: 1]) end 有没有办法将上面代码中的MyApp.User更改为检索当前模块的方法 您可以使用特殊形式\uuuuu调用者\uuuuuu来访问调用模块的名称。您可以使用\uuuuu模块\uu

Elixir 使用EXTO同时显示常见的和特定于数据库的验证错误

假设我有一些表单,它有电子邮件和密码字段以及2个验证:电子邮件必须是唯一的,密码不应少于8个字符 当我使用Repo.Insert或Repo.update或类似的任何其他方法时,我首先会得到与数据库无关的验证错误(少于8个字符的密码),并且只有在密码正确的情况下,它将访问数据库,发现电子邮件已经存在,并再次将其添加到变更集错误中 因此,如果用户发送一个表单,其中包含一封已经存在的电子邮件和一个简短的密码,那么他只会得到关于后者的错误,是否有一种方法可以始终点击数据库,以便同时获得通常的和数据库特定

Elixir 无法生成phoenix应用程序

我想试试凤凰框架,但不能接受 我安装elixirbrew安装elixir,安装之后,我安装Phoenixmix archive.install/path/to/archive 然后尝试混用phoenix.new\u app并获取错误信息: **(UndefinedFunctionError)未定义函数:crypto.strong\u rand\u bytes/1(模块:crypto不可用) :加密。强随机字节(64) lib/phoenix_new.ex:459:Mix.Tasks.phoeni

在Phoenix/Elixir中测试渲染

我的phoenix应用程序中有一个视图模块,其中包含render\u footer/1。我将如何使用测试来测试这个函数 您可以调用Phoenix.View.render\u to\u string。还要记住,您的模板都是作为render/2调用预编译的,所以我只需调用 render LayoutView, "footer.html", assigns 除非您需要为测试做大量准备,否则可以使用render\u footer函数,而不是执行以下操作: import Phoenix.View tes

Elixir mix.exs中存在错误的编码错误

我在应用程序中运行混合测试时收到此错误消息: **(混合)无法启动应用程序brcpfcnpj:“编码错误” 我知道发生错误的原因是我插入了一些重音字符,但我希望这可以作为默认情况下支持UTF-8的灵丹妙药。这是我的mix.exs文件: defmodule Brcpfcnpj.Mixfile do use Mix.Project def project do [app: :brcpfcnpj, version: "0.1.0", elixir: "~>

Elixir 为什么在实现GenServer时,跟踪#引用比跟踪#PID更好?

Elixir’s解释了如何使用GenServer实现包含代理的注册表服务器 每个代理的PID都保存在一个映射中,其中键是客户端提供的代理名称,值是代理的PID 为了避免保留对已死亡代理的引用,该指南建议使用Process.monitor/1监视新创建的代理,并通过添加名为refs的新映射稍微修改状态,其中包含引用(由Process.monitor/1返回的值)作为键,代理的名称作为值。它还显示了如何使用handle_info/2来更新refs来处理监控消息 Process.monitor/1接收

Elixir 尝试在混合任务中使用'Phoenix.Token'时出错

我有一个Phoenix应用程序,它使用Phoenix.Token对令牌进行签名和验证 这在应用程序本身中运行良好,但在尝试使用混合任务中的Phoenix.Token时,我遇到了一个奇怪的错误 下面是一个简单的例子: defmodule Mix.Tasks.SignSomething do use Mix.Task alias MyApp.Endpoint @shortdoc "sign something" def run(_args) do IO.inspect P

Elixir 用长生不老药将数字转换成单词

是否有一个库负责将数字转换为单词? 例如: 转换103->103 或 转换5765->伍仟柒佰陆拾伍未发布到Hex.pm,但实现数字转换算法的模块: iex(2)> NumberToWord.say(123312133123) "one hundred and twenty three billion, three hundred and twelve million, one hundred and thirty three thousand, one hundred and twent

Elixir 使用插头过滤API连接

我正在尝试筛选到我的API的连接 在我的mix.exs中,我添加了: pipeline :some_validation do plug VerifyLogicPlug end ### INSIDE MY SCOPE: pipe_through [:some_validation, :previous_pipeline] 我的插头如下所示: defmodule VerifyLogicPlug do import Plug.Conn def init(options),

Elixir S3上文件的File.Stream?

是否可以从URL流式传输文件?亚马逊S3 我试着做: stream= File.stream!(public_s3_file_path) 我得到了错误,尽管文件在那里并且是公共的: ** (File.Error) could not stream "filepath...": no such file or directory (elixir) lib/file/stream.ex:78: anonymous fn/2 in Enumerable.File.Stream.reduce/

Elixir (Exto.ChangeError)xxx的值xxx与类型:float不匹配

我有一个将产品添加到数据库的功能(product是一个map): IO.inspect显示: price: 52 但我得到了这个错误: (Ecto.ChangeError) value `24` for `Api.ProductShop.price` in `insert` does not match type :float 因此,price是一个int,但需要是一个浮点值 这是来自IO.inspect(产品) 将价格转换为浮动尝试(): 它记录了以下内容: the product pri

如何在Elixir中禁用类型定义的单据生成?

例如,我有一个模块,如 defmodule Foo do @type bar :: string end 但是我不想为bar生成文档,因为这意味着要使用内部实现。我相信您可以使用该标志 @doc false 最重要的是你不需要文档。 如文件所示: 函数的类型有@typedoc,但与@doc false不同,@typedoc false似乎不会在文档中隐藏类型。由于这是供内部使用的,我假设您也不想将其导出到模块外,因此您可以使用@typep将其声明为私有,这也会将其从文档中删除: defm

Elixir 用十进制或货币库取整

我需要一个函数,它接受一个小数点(它是money,所以小数点后两位),并四舍五入到最近的四分之一。我试图避免转换为浮点数,而停留在十进制世界中。(我也查看了Money库,没有看到满足我需要的舍入函数 这个函数可以工作,但很糟糕。十进制库本机只支持舍入到整数或一半,我不能将:lt和:gt这样的值滑入Enum.member?因为它们不可枚举,所以我对:lt和:gt使用了单独的条件 def round_up_to_nearest_quarter(preroundedamount) do a

Elixir 在npm安装时,释放失败

我正试图发布一个长生不老药,凤凰应用到digital ocean服务器与蒸馏厂和edeliver。每当我执行以下命令时,我都会得到错误 mix edeliver build release --verbose 错误消息 A remote command failed on: username@server-ip Output of the command is shown above and the command executed on that host is printed belo

Elixir 长生不老药:计算连续元素差异的惯用方法?

我想计算数字列表中连续元素的差异,例如,input=[1,2,3,5]应该给出输出[-1,-1,-2] 我想出了两种看起来或多或少复杂的方法。有没有更简单、更惯用的方法 使用zip: Enum.zip(input, Enum.drop(input,1)) |> Enum.map(fn {x,y} -> x-y end) Enum.scan(input, [0, 0], fn x, [_delta, prev] -> [prev-x, x] end) |> Enum.

Elixir 如何在运行phoenix server时忽略编译警告

我试图从命令行使用iex-S mix phx.server运行phoenix server,但我不断收到关于未使用变量的编译警告 编译失败,因为在使用--warnings as errors选项时出现警告 我不关心这些警告,因为我在发展的中间,这些VAR最终会被使用或扔掉。我尝试过传递-h和其他合理的选项,但它们都不起作用,我在文档中找不到任何关于如何让phx.server将选项传递或覆盖到编译器的内容 我看过这些医生,但他们没有帮助 我已经尝试过传递--no compile选项,但这是

Elixir Phoenix从%Plug.Conn{}远程ip解析请求主机

我要做的一点小结。我有一个运行在AWS Elastic Beanstalk实例上的Phoenix应用程序,我正在发送包含PDF的REST API请求以进行操作(拆分、合并等)。每个请求都保存在数据库中。这就是我的请求架构的样子: schema "requests" do field :body, :string field :endpoint, :string field :method, :string field :request_hos

Elixir 如何解决lib/../views/user\u view.ex:16:未定义的函数user\u path/3编译错误

试图添加用户视图和用户控制器,但我遇到了一个奇怪的编译错误 从外观上看,我怀疑这也与生成的文件有关,但我仍然不知道如何解决它 这是控制器文件夹中的我的用户\u controller.ex: defmodule ChatterWeb.UserController do use ChatterWeb, :controller alias Chatter.User def index(conn, _params) do users = Repo.all(User) ren

Elixir 如何将诸如after_commit回调之类的东西附加到一个Ecto事务?

有没有一种方法可以将回调附加到提交事务后调用的Ecto事务?我在找类似的东西 我正在处理的用例是在执行操作后引发副作用。例如,在下面的代码中,我想在App.ServiceB.run/0中启动副作用,但由于它是在调用方启动的事务上下文中被调用的,因此我不能保证操作不会回滚 defmodule App.ServiceA do alias App.Repo def run() do App.Repo.transaction(fn -> with {:ok, _} &

通过添加可选参数elixir,函数定义发生冲突

函数hello没有任何冲突&工作正常 defmodule用户操作 defstruct[:名称] 结束 迎宾舱 def hello(%User{}=User)do “你好#{user.name}” 结束 def你好(姓名)吗 “你好#{name}” 结束 结束 但是如果我在第一个函数中添加可选参数,就会出现冲突错误 。。。 def hello(%User{}=User,opts\\[])do “你好#{user.name}” 结束 ... 错误 def hello/1与hello/2的默认值冲

Elixir 混合运行任意命令

我在proto/*.proto中有一些协议缓冲区定义。我当前基于Makefile的构建系统将它们编译成一个Erlang模块和头,并编译成一个自描述符(作为.pb文件),然后将描述符作为梁模块嵌入: foo.proto -> foo_pb.erl, foo_pb.hrl -> foo.pb -> foo_pb_desc.beam 我已经实现了一个mix\u protobuff任务来完成第一步,以及foo.proto->foo.pb部分步骤 我还获得了将任意文

使用Elixir中的System.cmd:into选项写入文件

我想使用postgres转储我的数据库,并将文件写入我的phoenix应用程序的本地文件夹,但我无法使其工作。我试着使用这个选项 以下是我所做的: System.cmdpg_转储到[myapp_dev]中:backup.sql :into选项,如中所明确说明的,将结果注入到给定的collectable中,这意味着命令的输出将附加到您传递并返回的字符串中 使用本机选项转储到文件更容易,让shell和pg_转储执行所有工作,并且不来回传递巨大的blob。下面的方法应该有效 System.cmdpg_

Elixir 如何在phoenix中覆盖错误?

我在phoenix上构建restful api(json)。我不需要html的支持 如何在phoenix中覆盖错误?示例错误: - 500 -404当找不到路由时 和其他。您需要自定义MyApp.ErrorView。Phoenix在web/views/error_view.ex中为您生成此文件。可以找到模板的默认内容 另外请看,虽然它们似乎有点过时,因为它们指示您使用MyApp.ErrorsView(复数),而对于那些可能与我有相同问题的人,它被替换为MyApp.ErrorView,但对于404

Elixir 长生不老药的日期范围?

Elixir是否支持日期范围?例如,像这样的Ruby代码在Elixir中可能吗 需要“日期” d1=日期:civil 2015,1,1 d2=日期:civil 2015年1月7日 (d1..d2).每个{d}放置d} 输出: 2015-01-01 2015-01-02 2015-01-03 2015-01-04 2015-01-05 2015-01-06 2015-01-07 2015-01-01 2015-01-02 2015-01-03 2015-01-04 2015-01-05 2015

由于缺少elixir appup文件,混合发布失败

我有一个简单的网站写的长生不老药/凤凰。 我今天做了一些更改,希望将其部署到生产环境中 我推送了我的回购协议,将其拉到生产服务器上,并构建了一个版本,其中包括: MIX\u ENV=prod MIX release 但它失败了。。。 因此,我用--verbosity=verbose再次运行它,但失败的原因是: silent])===> Provider (relup) failed with: {error, {rlx_prv_relup, {relup_script_gene

Elixir 伞形应用程序中的共享代码

我的伞形应用程序具有以下目录结构: umbrella_app/ _build/ apps/ client/ config/ lib/ client.ex test/ server/ ... config/ 是否有一种方法可以在伞形应用程序中的某个地方编写代码,无需创建另一个子应用程序即可从我的客户端和服务器访问 例如: # umbrella_app/a

Elixir:数组到函数参数

我不熟悉长生不老药。我使用该库与Redis一起工作。我无法正确执行MGET命令。 此代码适用于: Like4uElixir.RedixPool.command(["MGET", "a", "b", "c"]) -它从Redis返回3个值。 但是这个代码不起作用: keys = ["a", "b", "c"] Like4uElixir.RedixPool.command(["MGET", keys]) 但我有所有的钥匙。如何将数组转换为多个函数参数?您的代码示例不一样。您正在创建嵌套列表,而不

Elixir 测试或验证

我使用标准的scaffold创建了一个user模型,该模型的属性为first\u name和last\u name。我写了一个验证,检查名字或姓氏是否存在。默认验证将检查和。添加测试first\u name或last\u name存在的测试的最佳方法是什么 defmodule Vutuv.UserTest do 使用Vutuv.ModelCase 别名Vutuv.User @有效的属性%{first_name:“某些内容”,last_name:“某些内容”} @无效的_attrs%{} 测试“具

Elixir 如何使用EXTO更新字符串

我以为字符串concat是,但我无法在下面的代码中使用它。我犯了一个错误 只允许文本二进制文件和字符串,动态值需要在具有^ 我已经添加了^,但它仍然不起作用 def delete(conn, %{"id" => id}) do card = Repo.get!(Card, id) # Look for any cards that have chosen one as master # Update name to deleted card + version

使用Elixir解压文件时抛出:数据错误

我正在从谷歌云存储下载一个文件() 文件的二进制内容在响应体上返回。使用:zlib.uncompress抛出我 ** (ErlangError) erlang error: :data_error 我通过将文件保存在磁盘上并手动提取来检查文件的内容 有没有其他方法可以不用unix命令在elixir/erlang中解压文件 编辑: 检查二进制文件后,我同意了 r.body |> inspect(binaries: :as_binaries) |> IO.puts <<31

Elixir 构造对self的GenServer调用的正确方法

我知道让GenServer进程自己调用几乎是不可能的,因为您实际上遇到了死锁。但是,我很好奇,是否有一种更好的方式来做这种事情 假设以下场景:我有一个队列,从中弹出内容。如果队列曾经是空的,我想重新填充它。我可以这样构造它: def handle_call(:refill_queue, state) do new_state = put_some_stuff_in_queue(state) {:reply, new_state} end def handle_call(:pop, st

Elixir 在调试上下文中打印数据

我发现Erlang的~pformat命令在调试时很有用:它可以将数据打印成一种可以往返返回Erlang的格式 在长生不老药,我可以 require Logger # ... Logger.debug("foo=#{inspect foo} bar=#{inspect bar}") 并获得我想要的效果,但在任何地方键入“inspect”都是一件痛苦的事情,有时在我的代码库中,我必须内核。inspect。我宁愿它只是做了正确的事情: require Logger # ... Logger.debu

Elixir 无法删除模型--函数EXTO.Query.\u\u变更集\u\u/0未定义或私有

我正在尝试删除一个项目及其所有子项: where(ParentModel, [x], x.user_id == 123) |> first |> Repo.delete() # or # Repo.delete(where(ParentModel, [x], x.user_id == 123)) 两者都会引发异常: function Ecto.Query.__changeset__/0 is undefined or private 它与验证有什么关系 在父模型中,我有on_d

Elixir 为什么我在启动子级时从这个一级深的OTP树中得到错误?

现在,当我执行以下操作时,我从start_child获得一个错误状态: {_, pid} = NTree.start_link {_, cid} = Supervisor.start_child(pid, []) # {:error, #<PID.0.91.0>} 过程信息(cid)产生: [当前_函数:{TreeWorker,:loop,0},初始_调用:{:erlang,:apply,2}, 状态::正在等待,消息队列长度:0,消息[],链接[], 字典:[],陷阱\u退出:f

Elixir 我如何才能像从iex开始一样重新写入节点并捕获其I/O?

如果我用iex启动我的应用程序,我会在控制台上看到我的应用程序的日志语句 如果我启动应用程序时将其分离,然后将remsh放入其中,我如何才能看到相同的输出 默认情况下,从远程shell执行的任何操作都会将其组长设置为shell的组长,因此I/O将按预期工作 对于从主节点启动的进程,已经设置了它们的组长,因此它们的I/O不会重定向到远程shell。您可以使用process.group\u leader/2设置流程的组长,例如:process.group\u leader(pid,process.g

无法获取elixir中方法的返回值映射

我正在使用elixir库来管理rocksdb中的数据。有一种删除方法定义如下: delete(db_or_cf, key, write_opts \\ []) delete(Rox.DB.t | Rox.ColumnFamily.t, key, write_options) :: :ok | {:error, any} 我使用以下方法调用此方法: result = case Rox.delete(db, :erlang.term_to_binary(key)) do

Elixir 如何在phoenix webframework的路径帮助程序中使用片段标识符?

有没有办法将片段标识符添加到路径帮助器 我尝试从登录页面链接回登录页面中的“关于”部分 <a href="localhost:4000/#about">ABOUT</a> 我尝试将路径合并,但没有成功: <li><a href="<%= page_path(@conn, :index) <> "#about" %>">ABOUT</a></li> 提前感谢您的帮助 不能嵌套双引号: <a

Elixir 如何确保功能可以';你不能叫两次吗?

使用Phoenix Web应用程序,我有一个控制器,可以调用函数来启动一些处理。此处理可能需要大量时间 目前,如果我调用控制器两次,该进程将终止并重新启动(不希望) 如何确保对函数的后续调用不会终止或重新启动进程,而只是被忽略 谷歌似乎建议使用代理,但我一直没能让它发挥作用。虽然我可以设置标志的状态以防止其重新运行,但当第二次调用控制器时,进程仍然会终止 问题演示: 左侧的按钮按预期工作,并使用javascript发布到端点/起点 每次按下右侧的按钮时,都会重新启动该过程 更新:POST请求将

Elixir 为什么在解析选项映射输入时使用双感叹号(!!)?

例如,在宏中: 其中:async是使用ingExUnit.Case时的一个布尔选项 defmodule AssertionTest do use ExUnit.Case, async: true test "always pass" do assert true end end 它意味着两次否定该语句()。找到有关为什么在中执行此操作的最佳说明: 在代码中使用双重否定会模糊原始参数 价值观 对于false和nil,这将返回false,对于true 别的。起初,这似乎是一个

Elixir Phoenix mix任务上的HTTPoison ArgumentError

我在phoenix应用程序(lib/mix/tasks/fetch.btc.ex)上有mix taskmix fetch.btc: 运行mix fetch.btc时出现错误: ** (ArgumentError) argument error (stdlib) :ets.lookup_element(:hackney_config, :mod_metrics, 2) PROJ_DIR/deps/hackney/src/hackney_metrics.erl:27: :hackne

为什么Elixir中的Stream/Enum模块中的元组模式匹配映射可以工作?

如果我理解正确,elixir中的元组用{}表示,而映射用%{key:value}表示为键:值对 在下面的代码中,Stream.filter和Enum.map接受entries作为输入,这是一个map并对其进行迭代 但是它们内部的lambda函数正在{uuu,entry}上进行模式匹配,这是一个元组。这是怎么回事 defmodule TodoList do defstruct auto_id:1,条目:%{} def new(),do:%TodoList{} def添加条目(待办事项列表,条目)d

Elixir “获取的替代方案”;配置变量";作为静态值

我一直在寻找一些静态的全局值,比如,如果某个值为nil | null,则将此默认值放入,例如,如果赋值中没有声明,则将默认url放入eex中的链接中 例如: # Create a link with default return if URL not found <%= link "Go back", to: assigns[:url_back] || Application.get_env(:app_name, :default_values)[:url_

Elixir 编译错误-用户。\结构\未定义,无法展开结构用户

我正在按照《凤凰城1.4编程》一书开发一个简单的应用程序 在添加创建新用户的逻辑时,出现以下错误: == Compilation error in file lib/rumbl_web/controllers/user_controller.ex == ** (CompileError) lib/rumbl_web/controllers/user_controller.ex:19: Rubml.Accounts.User.__struct__/1 is undefined, cannot ex

如何从Elixir Phoenix应用程序中删除命名空间?

Elixir Phoenix使用名称空间作为控制器、模型和视图的前缀。在我的例子中,它是CableWeb,我的应用程序称之为Cable 我想删除它,因为我的应用程序很小,没有名称空间更容易使用 我试图删除它,并重写了下面的代码 scope "/", CableWeb do pipe_through :browser get "/", PageController, :index end ... defmodule CableWeb.PageC

上一页   1   2   3   4    5   6  ... 下一页 最后一页 共 125 页