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 在phoenix中更改对运行时的依赖关系

我在中创建了一个web应用程序,它创建了一个名为deps的依赖项文件夹,我想知道是否可以更改其中一个依赖项的代码,并查看其影响。我试图这样做,但它不执行我的注入代码。您重新编译依赖项了吗 在进行更改后,从目录的命令行发出命令 mix deps.compile 这将导致包含您的代码更改。有时您必须删除\u build/目录下的相关目录才能强制生成它。我必须为\u build/test/mailgun做这件事。

Elixir 基于外显关联查询

在Rails控制器中,您经常看到下面的代码,以便只获取属于当前用户的帖子 class PostsController < APIController def show current_user.posts.find(params[:id]) end end class PostsController

Elixir 我应该在哪里输入凤凰城以=#开头的行?

我当前遇到以下错误: $ mix ecto.create ** (Mix) The database for HelloPhoenix.Repo couldn't be created, reason given: psql: FATAL: role "postgres" does not exist 根据上的Phoenix页面,解决上述问题的方法是输入=#CREATE ROLE postgres LOGIN CREATEDB 但我不知道该把它放在哪里。是我在文件中输入的东西吗?如果有,哪个

Elixir:当Phoenix控制器需要数据库中的记录时,如何测试它们?用种子还是模仿?

在测试控制器时,在测试数据库中有一些数据可能很有用。有时您可能需要测试数据创建。正确的设置方法是什么?控制器测试应测试控制器的创建功能是否工作,而不是模型 作为一个例子,我想测试一个会话控制器,我有两个测试。一个是测试创建的用户是否可以登录。另一个是,如果密码错误,他就不能。两者都依赖于数据库中的用户。我现在的处理方法是首先创建用户: defmodule MyApp.SessionControllerTest do use MyApp.ConnCase alias MyApp.Admi

Elixir phoenix框架中的自定义属性错误

当我在变更集中出现一些验证错误时,我希望能够对最终用户说:“信用卡不能为空”,或者更复杂的事情,例如:“您的超级信用卡不能为空” 简言之,我希望它具有相同的功能: 我在指南上找不到这样的东西,所以我想到了: 错误\u helpers.ex @doc """ Generates tag for inlined form input errors. """ def error_tag(form, field) do if error = form.errors[field]

Elixir 通过管道传输到Enum.into的范围引发警告

我有一个范围要传送到Enum.into[],该范围会引发警告。这里怎么了 iex(1)> 1..5 |> Enum.into ([]) warning: you are piping into a function call without parentheses... 加括号后 iex(2)> (1..5) |> Enum.into ([]) warning: you are piping into a function call without parenthes

Elixir 回购协议如何计算出该表的名称?

我还有个问题。当我做这样的事情时 case MyRepo.insert %Post{title: "Ecto is great"} do {:ok, struct} -> # Inserted with success {:error, changeset} -> # Something went wrong end Repo如何知道要使用数据库中的哪个表?Ecto在调用use-Ecto.schema的模块上定义了一个\u-schema\u函数,然后调用sche

Elixir 我的任务进程似乎无限期地停滞

我正在用Elixir构建一个应用程序,它有一群工作人员(在任何给定时间可能有100-200人)。这些工作人员相互独立操作,他们不是“池”,他们所做的只是将作业从Redis队列中弹出,做一些工作,然后可能将更多作业弹出到队列中(请参见下面的代码) 这些工作人员只是受监督的任务,他们自己调用一个尾部递归函数,该函数要求执行一个作业,如果有,一切正常,如果没有,它将:timer.sleep一秒钟,然后再次运行 问题是,这些工人在那里做了一段时间后(完全如预期的那样),他们会逐渐停止这样做 我在《观察家

Elixir 不同长度字符串的模式匹配

我有一个字符串列表: list1 = ["aaa_1_bbb_1326778", "aaa_629_bbb_37", "aaa_2254354_bbb_3997"] 除了使用Regexp之外,如何轻松地从每个项目中提取两个数字 Enum.map(list1, fn(x) -> # end) 有没有类似于模式匹配的解决方案?如果格式总是用下划线分隔的4个东西,第二个和第四个是整数,这是您想要的东西,我会使用字符串。拆分和模式匹配如下: list1 = ["aaa_1_bbb_13

Elixir 长生不老药从地图列表中获取信息

我通过post将此结构发送给我:联系人=[%{“John”=>[“0724573977”]},%{“Mary”=>[“0724573111”,“0744556778”]}这基本上是一个联系人列表,每个联系人都是一个地图姓名=>电话号码 我试着列出所有的电话号码,忽略任何名字,只是列出一个号码: a = [%{"1" => ["0724573977"]}, %{"2" => ["0724573111", "0744556778"]}] p = Enum.reduce a, [], f

Elixir 菲尼克斯:主管忽略名称,新流程

我有一个应用程序.ex如下所示: defmodule Qtrain.Application do use Application def start(_type, _args) do import Supervisor.Spec children = [ supervisor(QtrainWeb.Endpoint, [], name: Qtrain.Supervisor), supervisor(Qtrain.Requests, [], nam

Elixir 自定义ExUnit断言和模式匹配

我正在编写一个灵活的、基于适配器的错误跟踪库,并提供一组自定义测试断言函数,以使集成测试更易于使用 我有点像 # /lib/test_helpers.ex ... @doc """ Asserts specific exception and metadata was captured ## Example exception = %ArgumentError{message: "test"} exception |> MyApp.Er

Elixir 营救一个外星人,让他们继续迁移?

如何拯救一个exto.ConstraintError(由唯一性冲突引起-我在一个名为“field”的字符串属性上有一个唯一的索引) 以下是我所拥有的代码,它仍在引发错误,似乎无法挽救-exto.migration停止: try do Repo.insert(model_changeset, on_conflict: :nothing) rescue e -> IO.puts(inspect e) end 另一件需要注意的事情——有时mode

Elixir 跨数据库外部配置失败

在config/dev.exs中: config :drupex, Drupex.Repo, adapter: Ecto.Adapters.Postgres, -- username, password, database, hostname, pool_size omitted -- config :drupex, Drupex.DrupalRepo, adapter: Ecto.Adapters.Mysql, -- username, password, database,

有没有办法直接从Elixir中的元组返回值?

给定一个返回元组的函数,有没有办法在同一行从该元组中提取并返回特定值?我经常发现自己在长生不老药中使用这种模式,我想知道是否有一种速记方法可以达到同样的效果 例如,我在下面的函数中拾取并返回result: def foo() do {:ok, result} = get_result() result end 有没有办法在该方法中不需要第二行代码?您可以使用elem/2获取术语的第二项: def foo() do get_result() |> elem(1) end 但这

GenServer是否可以在Elixir中拥有自己的结构?

场景: 我有一个简单的GenServer来管理一些状态 目前,我正在使用map管理我的状态。但它也在不断增长 我正在向该州添加更多数据 问题: 因此,为了保证编译时,我可以在GenServer模块中使用struct 如果是,这是一个正确的方法吗 如果没有,还有什么选择 只需声明一个普通结构(可以选择嵌套在GenServer命名空间中的模块中),并将其用作初始状态: defmoduletestdo DEF模块状态do defstruct~w|foo bar baz|a 结束 使用GenSer

Elixir 将列表解析为映射

我从plug`conn.req_头中得到以下信息: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.9,fr;q=0.8"}, {"cache-control", "m

Elixir 如何按键查询json对象列表

我是长生不老药的新手,我的目标如下: [{user_id,DPMJecfXsYMlYnM4dvUVUEjmV763},{role,admin},{content length,0},{host,localhost:5000},{connection,close}] 每个元素中的第一个值是键,第二个值是值。例如,user_id是键,DPMJecfXsYMlYnM4dvUVUEjmV763是值。如何通过Elixir中的键查询此对象 您发布了一个关键字列表。有Keyword.get函数,但它只适用于原

Elixir 如何重载相等运算符?

例如,在swift中,可以按如下方式重载相等运算符: 用长生不老药有没有办法做到这一点 我想要实现的是: defmodule IP do @enforce_keys [:host, :port] defstruct [:host, :port, failures: 0, timeouts: 0] @type t :: %IP{host: String.t(), port: integer, failures: integer, timeouts: integer} # I

Elixir 请求在60秒后重新启动

升级到phoenix 1.4.10(从1.3.0)后,我遇到了长时间运行的请求问题(生成一个要返回的文件大约需要2分钟)。似乎在60秒后,处理请求的控制器操作被终止并再次启动。我看到了日志 [info] GET /admin/download_file/2 ... running for 60 seconds, and then again without any browser action [info] GET /admin/download_file/2 这将一直持续到达到牛仔空闲超时(

Elixir外部查询-保持输出顺序

我有一个ID列表[“123”、“321”、“101”] 查询segments=Repo.all(来自段中的(s,其中:s.id in^id)) 匹配段的输出顺序与列表中的顺序不同。例如,如果这是一个Enum.map,则顺序将被保留。是否有一种方法可以做到这一点,只使用一个查询,而不必执行类似于Enum.each?以下是我尝试转换为EXTO(用于Postgres)的方法: def模块段do ... def by_id_顺序(查询,id)do 查询 |>连接(:inner,[s],o在片段中(“SE

如何使用protobuf文件生成elixir代码?

我找到了很多用于定义protobuf消息的库,但我找不到一种方法来使用.proto文件生成elixir代码,比如协议缓冲区的elixir编译器。社区对此使用了什么?我有一个解决方案,但我不知道您希望如何使用生成的elixir代码(您可以从宏编译的beam文件中反汇编)。我认为生成的宏足以进行protobuf通信,您不需要任何生成的elixir代码。顺便说一句,您可以手动使用生成的beam文件(另一个丑陋的解决方案) 我丑陋的解决方案 将exprotobuf作为依赖项添加到项目中: defp de

Elixir 我们可以在elexir中配置和记录分布式程序吗?

我想用elixir实现一个map reduce分布式系统(作为我的一门课程的一个项目),但在开始之前,我需要找到一些工具 对于我的项目,我需要分析系统的行为和性能。例如,我想检查性能如何随着问题规模的增加而变化,或者改变工作人员的数量等,或者如果我们有链接/流程故障会发生什么。由于该程序是分布式的,我不知道如何实现这种分析。我找不到任何适用于我的用例的库,但由于我对该语言不熟悉,可能有一些方法我不知道。您正在寻找的是所谓的“分布式跟踪”,很少有项目支持它。例如此外,您还希望为应用程序收集度量。这

Elixir 使用IEx.pry时出现编译错误

抱歉,如果这是一个简单的问题,但我对长生不老药非常陌生,而且我没有erlang背景 我试图运行以下代码,但它给出了一个错误 ~cat foo.ex defmodule Math do def add(a, b) do a + b IEx.pry end end IO.puts(Math.add(1, 2)) ~elixir foo.ex ** (CompileError) foo.ex:5: tried to invoke macro IEx.pry/0 but

Elixir 长生不老药

我正在尝试用elixir编写一个宏,它创建一个Phoenix路由器和一个控制器,该控制器有一个动作,该动作应该将消息发送给调用方进程(从测试中调用它) 下面是对宏的调用: start_server self(), "TestService", 8080, "/some_action", fn(conn, _) -> conn |> text("") end 问题是,我从测试中传递的pid在操作中没有被保留。 第#1行打印正确的pid,第#2行打印错误的pid。我很确定我遗漏了一

Elixir 如果未调用,为什么IO.会将打印内容放入模块中的终端

我有一个问题,我有这个模块 defmodule Example do IO.puts "Creating a function" def sum(a, b) do a + b end IO.puts "End of the function” end 当我用elixirc example.ex编译这个时,我得到了这个 Creating a function End of the function 为什么??我只是编译了这个文件,并没有从任何地方调用这个模块在

何时在Elixir中内联函数

所以问题很简单,内联到底做了什么,什么时候应该在Elixir中使用它 内联的意思是:@compile{:inline,myfun:1} 另外,我知道Erlang文档中有关于这个主题的信息,但我仍然不确定我是否理解。当您内联函数时,它的调用将在编译时被函数体本身替换。这可以用来压缩特定函数调用的最后一点性能,从而消除单个函数调用的开销。不幸的是,它还将使堆栈跟踪更难读取,因为编译代码中实际上不存在原始函数。因此,当您使用内联时,您应该确信内联函数是防弹的,否则您将使代码更难调试 除非你有一个一直被

Elixir “in”操作符如何处理地图?

操作员如何在中使用地图 iex(12)> "a" in %{"a" => "b"} false iex(13)> "b" in %{"a" => "b"} false iex(14)> {"a", "b"} in %{"a" => "b"} true iex(15)> {"a", "a"} in %{"a" => "b"} false 如果它仅对表示键和值的元组返回true,为什么在前两个调用中不引发错误?如果您查看文档了解它的状态: 此运算符(

Elixir匿名函数、捕获和部分应用程序

我正在学习Elixir,目前正在处理捕获的语义和函数的部分应用。 我已经熟悉了fn(x)->x+1 end语法 我注意到了我认为一个令人惊讶的行为。例如,我注意到此代码段中的最后一个表达式返回false: f = &(&1 <> "-X") # #Function<6.50752066/1 in :erl_eval.expr/5> is_function f # true is_function &(&1 <> "-X")

Elixir EXTO以科学(指数)表示法返回数字

我不知道这是外星人的问题还是长生不老药的问题。当我在数据库中有一个数字,如1000、15000等时,Ecto会将其返回为1.0e3、1.5e4。。。如果我把1000改成1234,一切都好 Elixir 1.3.2、Exto 2.0.3、MySQL 迁移: alter table(:incoming_transfers) do add :fee, :float # Ecto translates it as DOUBLE in MySQL end 模式: schema "incoming_t

Elixir 区别于;fun1参数|>;fun2“;及;fun1(arg)|>;fun2“;长生不老药

我一直在试用Elixir中的一些简单键盘IO,主要是IO模块IO.puts非常方便,因为它的最基本形式是打印提示并等待键入字符串 我遇到了一些奇怪的行为;“奇怪”是因为我不知道到底发生了什么。下面是iex课程以及评论和问题: iex(85)> IO.gets "Your name: " Your name: polo "polo\n" 到目前为止还不错 iex(86)> IO.gets "Your name: " |> String.trim Your name:po

Elixir 从测试中你如何称呼连贯性(长生不老药)?

我的Elixir应用程序正在使用一致性进行身份验证。我正在尝试为我的应用程序编写单元测试和功能测试,但我不知道如何从测试中调用login函数。在搜索过程中,很少有关于它的用法的例子。以前做过这件事的人能解释一下或举例说明如何做吗?模块Bar中声明的foo函数在任何地方都被称为Bar.foo。因此,要调用login函数,应该编写模块.Where.function.allows.to.login(params) Coherence项目本身提供了一个宠物项目,这实际上就是如何使用Coherence的好

Elixir 验证变更集中的日期格式

我想在我的变更集中使用此格式验证日期MM/dd/yyyy |> validate_format(:birth_date, ~r/^\d{2}\/\d{2}\/\d{4}$/) field :birth_date, Ecto.Date 但是,我得到了一个错误 ** (FunctionClauseError) no function clause matching in Kernel.=~/2 stacktrace: (elixir) lib/kernel.ex:1580: Ker

Elixir IO.puts vs IO.inspect

在我看来,IO.put和IO.inspect都是用来打印到控制台的。它们之间的区别是什么?阅读长生不老药文档,看起来就像是简单地编写并附加一个换行符 将做同样的事情,但它也会返回第一个值不变(因此它是可链接的),启用漂亮的打印/装饰和其他格式选项 友好的提醒,hexdocs可以非常棒。我能够很容易地找到你问题的答案,并且自己也能了解其中的差异。我强烈建议您通读您通常使用的模块,以发现您可能不知道可以从中受益的其他功能。在前面的答案中添加,IO.inspect可以打印任意长生不老药术语,带

Elixir 外键未插入到EXTO表中

我正在学习Elixir,现在创建了一个包含users表和userinformations表的应用程序。我试图在user\u informations中查询user\u id,但它没有被插入,我不明白为什么,因为所有其他字段都被插入了 以下是用户信息表: def change do create table(:user_informations, primary_key: false) do add :user_information_id, :uuid, primary_key: t

使用Elixir中的Integer.parse进行映射时出现异常行为

在Elixir中映射Integer.parse到字符串映射时,我遇到了一些非常奇怪的行为。我执行了以下命令: Enum.map([“7”、“8”、“9”],&elem(Integer.parse(&1),0)) 这导致了以下输出:'\a\b\t' 奇怪的是,如果我更改“7”,它的行为与我预期的一样: `Enum.map(["4", "8", "9"], &elem(Integer.parse(&1), 0))` 结果是[4,8,9] 进一步的实验表明,每一个大于6但小于14的前

Elixir 如何优雅地显示异位/长生不老药的错误?

类似于Repo.get!(用户,10) 产生如下结果: (Ecto.NoResultsError) expected at least one result but got none in query: from u in Db.User, where: u.id == ^10 (ecto) lib/ecto/repo/queryable.ex:80: Ecto.Repo.Queryable.one!/4 我如何才能优雅地返回类似{:error,“找不到记录”} 我可以使用tr

Elixir 获取列表中的项目列表

我在变量中有以下结果: list_of_scripts = [ {<<"script">>,[{<<"type">>,<<"text/javascript">>}],[<<"\n /*\n some JS here;\n ">>]}, {<<"script">>,[{<<"type"

Elixir 将El Capitan升级至High Sierra->;长生不老药不起作用

升级到Mac OS High Sierra后,Elixir不再工作,同时给出了一个提到“BoringSSL”错误的错误 npm fora无法提供进一步的信息,除非声明erlang有错误…我通过以下步骤解决了错误 将Xcode更新到版本9+ 命令行命令 brew更新 brew升级erlang brew升级长生不老药 (不提拉头发等) (我在这里添加了这个作为解决方案,因为我的很多同事在升级后也出现了这个错误)一些操作系统的脆弱性与此有什么关系?请提供有关Elixir版本、Erlang版本的

Elixir 我可以要求所有模块中的记录器自动运行吗?

在我的大多数模块中,我 require Logger 然后做一些日志记录。在我不使用的模块中,我经常进行更改,包括添加一些日志记录,然后我必须标记我正在使用记录器 要求在每个模块中安装记录器的成本是多少?是否有一种干净的方法可以始终要求记录器,而不在每个模块中提及它?模块不是从“基本”模块继承的。没有继承权。将每个模块视为一个独立的工作单元 因此,每个模块都应该导入完成其工作所需的所有依赖项。因此,在需要进行日志记录的模块中要求记录器是明确的。模块不会从“基本”模块继承。没有继承权。将每个模块

Elixir 如何在Phoenix框架中关闭开发错误消息?

现在我从我的Phoenix服务器收到了很好的错误消息: 但是,我使用Phoenix作为API,这些错误消息显示为大量不可读的html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>UndefinedFunctionError at GET /api/v1/sessions/test</title> <meta name

Elixir 插头选项和时间

如何在Phoenix controller中连接带有属性和表达式的插头 现在看起来是这样的: plug(在[:show]中执行操作时MyappWeb.Plugs.Auth) 我要补充一点: 我的钥匙:“我的价值” 我尝试了不同的语法变体,但都不起作用 plug(MyappWeb.Plugs.Auth,%{mykey:“我的_值”}在[:show]中执行操作时) plug(MyappWeb.Plugs.Auth,在[:show]中执行操作时,%{mykey:“我的值”}) 问题在于圆括号

Elixir 凤凰卫视:这是哪里';分配';来自哪里?

我在elixir phoenix自动创建的“app.html.eex”中发现了一个子句: <main role="main"> <%= render @view_module, @view_template, assigns %> </main> 但是这个关键字映射“assigns”从哪里来?assigns是一个模板上下文局部变量,通过在文档中声明 分配 “分配是指模板中可用的用户数据。但是,Phoenix专门处理分配下的一些键,它们是: :lay

Elixir-跟踪函数调用

Elixir中是否有类似于lisp中显示函数调用的输入值和返回值的trace宏的内容。摘自网站: (defun fact (n) (if (zerop n) 1 (* n (fact (- n 1))))) => FACT (trace fact) => (FACT) ;; Of course, the format of traced output is implementation-dependent. (fact 3) >> 1 Enter FACT 3

Elixir 显示来自%Mariaex{}映射的结果

我不得不使用exto.Adapters.SQL.query/4.查询我的数据库。 它工作得很好,并且返回了我所期望的结果 当我根据尝试使用在Phoenix页面上显示结果时,字段的数据存储在结构的行字段中,列的名称存储在列中。要将它们转换为键/值对,可以使用Enum.zip。这应该起作用: <%= for row <- @results.rows do %> <%= for {column, value} <- Enum.zip(@results.columns,

如何在Elixir中识别父应用程序的名称

我有一个在elixir中运行的主应用程序,这个主应用程序几乎没有依赖项,其中一个依赖项是应用程序本身。我正在尝试从依赖项应用程序中识别主应用程序的名称 当我尝试从从属应用程序调用时,我会得到从属应用程序的名称。如何获取主应用程序或父应用程序的名称?NB:我怀疑这是一个实例,您正在尝试做的事情可以通过另一种方式更好地完成。一般来说,应用程序应该显式地与它所依赖的应用程序交互,而不是与依赖它的应用程序交互 也就是说,您可以获得依赖于您的应用程序的应用程序列表: myapp = :my_applica

Elixir Enum.each在通过ExUnit测试循环时丢失变量

运行以下代码时,我收到警告: warning: variable "char" does not exist and is being expanded to "char()", please use parentheses to remove the ambiguity or change the variable name test/my_module_test.exs:7 然后是失败的测试: == Compilation error in file test/my_module_te

如何使用wallaby/elixir从html内部检索文本?

我需要使用HTML中显示的数字来使用elixir/wallaby进行测试 例: class=“应用程序添加安装链接”>14903 1/3 如何检索号码:14903 1/3 有没有一种功能或方法可以做到这一点?如果只有一个匹配元素: find(css(".app-add-installemnts-link") |> Element.text() 您可以像这样使用Wallaby.Browser功能: Wallaby.Browser.text(session, css(&

Elixir 你能用块超(比如Django?)覆盖phoenix模板的部分吗

在phoenix模板中区分HTML块的推荐方法是什么 我读过这本书;它勾勒出以下的轮廓 根布局由路由器中的一个插件注入 可以选择在管线上设置布局 可以选择在视图上设置布局 但是否有可能(或以其他方式建议)以某种方式仅覆盖模板块?例如,Django让你做这样的事情 基本模板 {% block header %} <%= render "_header.html", assigns %> {% endblock %} {% block content %}

上一页 1 2 ...  9   10   11   12    13   14   15  ... 下一页 最后一页 共 125 页