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 如何将Dict literal与构造的Dict进行比较?

我试图测试一个构建HashDict的算法,但是我不能让我的“预期”实际上等于我的“实际”。例如 iex> expected = HashDict.new([ key: 12 ]) #HashDict<[foo: 12]> iex> actual = Dict.put(HashDict.new, "key", 12) #HashDict<[{"foo", 12}]> 我非常喜欢测试用例中简单的Dict文本语法,但是我的实现递归地构建Dict。如何使它们相等?

什么';在Elixir的结构中删除nil值是一个很好的解决方案吗?

例如,我有一个结构 post = %Post{title: "Title", desc: nil} 我想得到 %{title: "Title"} 我的解决办法是 post |> Map.delete(:__struct__) # change the struct to a Map |> Enum.filter(fn {_, v} -> v end) |> Enum.into(%{}) 它是有效的,但是有更好的吗 更新: 我觉得从结构到映射,再到枚举,再

Elixir如何读取远程节点mnesia表

我正在尝试使用长生不老药来编写程序来访问记忆。我在AmazonLinux中运行IEXShell。我尝试使用连接另一个节点 Node.connect(:'hello@abc.com') 如果返回true,那么我想在这个远程节点上运行mnesia命令,我发出 :mneisa.info 但是,它只返回本地节点mnesia info。如何访问连接的远程节点的mnesia数据库 我试过rpc_调用,它可以工作。但是它是否有更直接的方法从远程节点mnesia获取数据。您是否尝试过: Node.spa

Elixir phoenix框架的全文搜索

所以我想知道是否有任何库可以用于phoenix framework的全文搜索?我试着用谷歌搜索一些东西,即使是在erlang,但只找到了一些非常古老的库…我想你是在问一些关于BEAM本机的东西。否则,我不知道你为什么不能使用。当然,您必须编写一些粘合代码,但我认为没有任何解决方案不需要一点粘合代码。您应该检查您的数据库如何支持此功能。例如:@JoséValim哦,我明白了,我会试试的,谢谢。我想感谢你为提出这个框架所做的所有工作,这是令人惊讶的。来自@JoséValim的链接不再可用,但Wayb

为什么在elixir中有两种定义命名函数的方法?

在elixir中,可以用两种不同的方式定义“和”函数: def sum, do: 0 def sum(a), do: a def sum(a, b), do: a + b def sum(a, b, c), do: a + b + c 或 我甚至可以混合使用这两种方法: def sum() do 0 end def sum(a) do a end def sum(a,b) do a + b end def sum(a,b,c), do: a + b + c 我的问题是:为什么有两种方法可以达

Elixir gen_tcp.recv在实际telnet客户端工作时未在单元测试上接收数据

我有一个正在工作的telnet服务器,我正试图为它创建一个单元测试。服务器可以与telnet客户端配合使用,并在连接完成后立即发送提示。在同一个插座上发送可以正常工作。 但是,单元测试的TCP客户端拒绝接收数据并超时。我不熟悉长生不老药,所以,我可能缺少一些基本的东西 opts=[:binary,packet::line,active:false,reuseaddr:true] {:ok,socket}=:gen_tcp.connect('127.0.0.1',4040,opts) {:好的,

如何使用Elixir Exto将字段绑定到具有不同名称的列

我正在尝试构建一个小应用程序,它将连接到遗留数据库。有没有一种方法可以使用与表列不同的属性名称来定义EXTO模型 比如: schema "oauth_access_tokens" do field :token field :user_id, :integer, column: :resource_owner_id end 不幸的是,我认为现在不可能 一个可能的解决方案是在数据库级别使用视图,但我不确定这是否是一个好主意。谢谢,我希望我在文档中遗漏了一些内容,但似乎没有:(

Elixir 二进制是什么意思?

导入包含以下函数的exs文件时: iex(6)> import_file("mymath.exs") {:module, MyMath, <<70, 79, 82, 49, 0, 0, 4, 212, 66, 69, 65, 77, 69, 120, 68, 99, 0, 0, 0, 147, 131, 104, 2, 100, 0, 14, 101, 108, 105, 120, 105, 114, 95, 100, 111, 99, 115, 95, 118, 49, 1

elixir-phoenix:未定义的函数Hex.SCM.managers

跑步时 mix phoenix.server undefined function Hex.SCM.managers/1 他回来了。有人知道我应该安装哪个软件包吗? Elixir版本为1.2.3和Erlang/OTP18 提前感谢您的Hex安装似乎已损坏。 尝试使用mix local.hex--force强制安装 您也可以尝试手动下载并安装最新版本 $ wget http://s3.amazonaws.com/s3.hex.pm/installs/1.1.0/hex-0.11.5.ez $ m

Elixir 在表单中使用gettext

如何在表单中使用gettext?这不起作用: <%= select f, :gender, [gettext "Male:": "male", gettext "Female:": "female"], class: "form-control" %> 您不能在关键字列表语法的关键部分调用函数,但可以传递包含两个字符串的元组列表: <%= select f, :gender, [{gettext("Male:"), "male"}, {gettext("Fem

Elixir Phoenix路径帮助程序和Phoenix.Param,用于基于日期的URI

在我的Phoenix应用程序中,我希望像http://localhost:4000/2016/07/24/,由结构中的日期字段生成。我已经为我的结构创建了一个Phoenix.Paramimpl: defimpl Phoenix.Param, for: Item do def to_param(item) do {{year, month, day}, _time} = item.date "#{year}/#{month}/#{day}/" end 结束 这正如预期的那样工作,但不

Elixir ETS表格创建错误

我在尝试基于记录创建和创建ETS表时遇到了一个问题。代码摘自《介绍长生不老药》一书 记录如下: defmodule Planemo do require Record Record.defrecord :planemo, [name: nil, gravity: 0, diameter: 0, distance_from_sun: 0] end 现在,如果按照以下方式创建表,则会成功: planemo_table = :ets.new(:planemos,[:named_tab

Elixir 外星生物,15分钟前到达

exto.DateTime.utc返回当前日期时间 如何创建15分钟前的exto.DateTime?使用:erlang.universaltime获取时间(exto将此用于exto.DateTime.utc/0),使用:calendar转换为公历秒,减去15*60,转换回erlang时间元组,并转换回exto.DateTime: iex(1)> utc = :erlang.universaltime |> :calendar.datetime_to_gregorian_seconds

Elixir 表联接

EXTO文档展示了如何连接两个表(A您可以在树状结构中预加载关联,然后根据需要映射结果 > subquery = App.Post |> preload(:comments) #Ecto.Query<from p in App.Post, preload: [:comments]> > query = App.User |> preload(posts: ^subquery) #Ecto.Query<from u in App.User, prelo

Elixir 如何从映射中通过键获取值,无论键是字符串还是原子?

是否有任何原生的elixir方法允许我从映射中按键获取值,无论键是原子还是字符串?比如: a = %{ k: 1 } b = %{ "k" => 1 } pure_elixir_method(a, :k) => 1 pure_elixir_method(b, :k) => 1 那么,通过定义具体的: 但是我不会那样做。没有。 但您可以编写自己的包装器方法来实现这一点: defmodule MyMap do def get(map,key)什么时候是_atom(key)do

Elixir 如何在IEx中运行ExUnit测试

我正试图在测试中启动IEx.pry。但是,我无法在iex会话中运行测试。注意,我没有使用mix ExUnit.start defmodule Calc do def add(a,b) do a + b end end defmodule TheTest do use ExUnit.Case test "adds two numbers" do require IEx IEx.pry assert Calc.add(1, 2) == 3 e

Elixir 菲尼克斯外星变量模型法

我正在使用Phoenix web framework(Elixir)重写一个基于python的API交付服务,但遇到了一个小问题 我正在尝试创建一个基本的模型方法,当调用该方法时,您向它传递一个序列号,它通过Ecto查询数据库并返回结果。通过查看文档,我应该能够使用插值来定义查询中的变量,但是我仍然得到一个错误 lib/test\u result.ex文件 defmodule Webservices.TestResult do use Ecto.Schema schema "t

Elixir edeliver--scp找不到生成

直到最近,“edeliver”一直运作良好,但现在它抛出了以下错误: 部署时出现此错误 [skipped] ==> Tarball updated! ==> Release successfully built! You can run it in one of the following ways: Interactive: _build/prod/rel/my_website123/bin/my_website123 console Foregro

Elixir 如何用Phoenix和Arc替换上传的图像?

我使用Arc上传图像-这是uploader的基本结构-我不做任何自定义或奇特的操作-验证、转换或文件名都与中的类似 我想替换我上传的图像,正如我在存储它们的上传文件夹中看到的那样-一切都很好,但在我的应用程序中,我想使用url/2,如下所示: Avatar.url({file, scope}, :thumb) 它会将我的url返回到旧文件,有时这个旧文件会被破坏-仅部分呈现。使用mix phoenix.server不会改变这种情况。有什么奇怪的缓存吗?我可以使用讨厌的变通方法来确保文件thum

Elixir 主管:can';不要用pid终止孩子

试图通过其pid终止子项不起作用,应根据文档: iex(7)>{:ok,sup}=Supervisor.start\u链接([],策略::一对一) {:好的,#PID} iex(8)>{:ok,pid}=Supervisor.start\u子(sup,worker(RData.ExpectedRefurbishmentCost,[self()])) {:好的,#PID} iex(9)>主管终止子女(主管、pid) {:错误,:未找到} 有什么线索可以让它工作吗?对于所有策略,除了:简单的一对一

Elixir 生成一个随机文件密钥

我需要生成一个随机文件密钥。它必须验证以下正则表达式: ~r/[A-Z0-9]{8}/ 在Elixir中生成这样一个随机字符串的最佳方法是什么?又快又脏(可能不是世界上最好的解决方案),但类似的方法也可以 defmodule RandomKey do @charset Enum.to_list((65..90)) ++ Enum.to_list((1..9)) def generate(size \\ 8) when is_integer(size) do char_list

Elixir中是否有一个工具可以显示表达式计算方式的分解?

我有一句话来自这个问题-。 Elixir中是否有一个工具可以显示其计算方式的分解?由于您面临的主要问题似乎是在复杂表达式中识别无括号函数调用的参数,因此您可以将字符串解析为Elixir AST(code.string_to_quoted!/1)和back(Macro.to_string/1),这将在有函数调用的地方添加显式括号 iex(1)> "a B.c |> D.e + f g h + i" |> Code.string_to_quoted! |> Macro.to

Elixir 如何将Repo.transaction与原始sql查询一起使用

我正在将Node.js应用程序转换为Elixir,我需要在Ecto中使用原始SQL查询,因为我有一些相当复杂的SQL查询。我在一笔交易中有大约10笔 我对Elixir也是相当陌生的,我正在尝试使用Repo.transaction,而不是尝试滚动我自己的交易 因此,我有大约10个: raw_query = "INSERT INTO user_servers(user_id, server_id, server_type_code, position, active_flag, create_dat

Elixir 可以在凤凰城禁用代码重新加载程序吗?

CodeReloader(在dev模式下)正在使用Mix.Config。在dev_模式下使用蒸馏器版本时,此操作失败,因为mix在版本中不可用 有没有可能在Phoenix应用程序中完全禁用CodeReloader,这样我的应用程序就不会在dev_模式下启动了?发布版?在你的应用程序中/config/dev.exs你会得到类似的东西 config :my_app_web, MyApp.Web.Endpoint, http: [port: 4000], debug_errors: true,

elixir递归块未返回正确的值

我希望下面的代码块返回不等于0或n的值。但有时它返回的值等于0 def get_random(n, num) do random = returns some number IO.puts random if random == n or random == 0 do get_random(n, num) end random end 您没有再次设置random变量 固定代码: defmodule GetRandom do def get_r

Elixir 长生不老药/凤凰多次尝试功能,了解:ok

我有一个函数ping(),它会导致{:ok}或{:error} 是否可以创建一个包装函数test(),在返回错误之前尝试ping()5次,除非其中一个ping()响应{:ok} 如果在第一次尝试时test()可以从ping()返回{:ok},那么它应该退出递归,但如果没有,则继续尝试ping()4次 我检查过了,但似乎不知道如何使它工作。任何提示谢谢 这里不需要尝试/捕获。一个带有case语句以匹配响应的简单递归函数就足够了: defmodule A do # A function that

Elixir希望使用什么文件编码?

当Elixir读取源文件进行编译时,它希望该文件采用什么编码?我想包括一些具有更高unicode值的文字字符串。UTF-8 发件人: Elixir还希望您的源文件是UTF-8编码的 我们也可以通过实验验证这一点π为0xCF 0x80 $ cat a.exs IO.puts "π" $ xxd a.exs 00000000: 494f 2e70 7574 7320 22cf 8022 0a IO.puts "..".

Elixir 将'sum'结果强制转换为EXTO中的整数

我在Ecto中有一个查询,它包含一列包含整数的和。我使用MySQL作为数据库 e、 g 通过在片段中使用MySQL的CONVERT函数,我成功地实现了预期的结果,但它似乎不是最健壮的方法: result = Repo.one( from v in Vote, where: [post_id: 1], select: fragment("CONVERT(?, SIGNED)", sum(v.direction)) ) 有更好的方法吗?SUM在MySQL中为整数输入返回一个DE

Elixir 比较两个列表并返回布尔值

我有两张单子 list1 = [1,2,3,4,5,6,7] list2 = [3,4,5] 如果列表2中的所有元素都出现在列表1中。它应该返回true,否则它将返回false 我考虑过Enum.member?但它将单个元素与列表进行比较,而不是完整的列表 还有别的办法吗 谢谢检查长度(list2--list1)是否等于零检查长度(list2--list1)是否等于零我会使用地图集。子集?/2这里: iex(1)> list1 = [1, 2, 3, 4, 5, 6, 7] [1,

如何规范化Elixir中的数字列表?

最有效的方法是什么?(对于一个庞大的数字列表)? 我找不到这个问题的可靠答案。一开始是,或者规范化是某种自定义的。然后,使用步骤1中的值,将原始列表重新规范化 input=[1,5,-2] {min,max}=Enum.min\u max(输入) {new_min,new_max}={0,1} 枚举映射(输入, &新建最小值+(&1-min)/(最大最小值)*(新建最大值-新建最小值))) #⇒ [0.42857142857142855, 1.0, 0.0] 一开始是或如果规范化是某种自定义的。

Elixir 我如何确保酒厂在发行版中包含Erlang iNet?

我的应用程序在尝试运行发行版时存在以下致命问题: ** (MatchError) no match of right hand side value: {:error, {:inets, {'no such file or directory', 'inets.app'}}} 在我的本地主机上使用mix运行时,它工作正常,但是distillery 2版本有这个问题 我从erlang solutions repo安装了erlang iNet ubuntu包,并发布了另一个mix版本,但这似乎并没

如何处理elixir gettext po文件中的模糊行?

我正在修复Elixir项目输出字符串中的拼写和语法错误。我以前从未使用过gettext(除了制作字符串) 当我运行mix gettext.extract,然后运行mix gettext.merge priv/gettext时,我检查的第一个po文件保留了旧的拼写错误,并在底部添加了注释行更正: #,长生不老药格式,模糊 是否通过删除字符串的旧版本手动解决此问题?我如何处理更正行上的注释?我应该手动从pot文件中删除旧字符串吗?(这似乎使修复这些错误的过程非常烦人。我希望旧的未使用字符串会消失。)

Elixir 如何基于是否选中复选框显示/隐藏窗体的部分

我想根据是否选中复选框来显示或隐藏表单字段。我不知道从哪里开始用eex来做这项工作 <%= form_for @changeset, @action, fn f -> %> <div class="form-group"> <%= label f, :white_label, class: "control-label" %> <%= checkbox f, :white_label, class: "checkbox" %&g

Elixir 模式和模型之间有什么区别?

我刚刚开始使用ate Phoenix,但我不太了解一件事,我搜索并看到有模式,数据库结构和模型具有较高的层次和逻辑处理能力,但在Phoenix中,我们只有模式,因此,例如,如果我要进行密码哈希,它应该在用户模式中?或者我应该把它放在控制器中?一般来说,你希望你的MVC应用程序有“瘦控制器”——这是一个跨多种语言的建议。在某些语言/框架中,这非常关键,因为测试控制器可能非常困难。尽管在Elixir等函数式语言和Phoenix等结构良好的框架中测试控制器相对简单,但您仍应尽可能保持控制器的精简。简单

如何在Elixir中汇总地图列表中不同键的值

您好,我想将所有count和所有val键汇总到一个包含两个键的累积值的新映射 这就是我到目前为止所做的: list = [ %{count: 1, val: 12}, %{count: 3, val: 7}, %{count: 1, val: 5}, %{count: 2, val: 3}, %{count: 2, val: 5}, %{count: 1, val: 3} ] x = &%{count: &1, val: &1} sumCount

Pubsub升级时Elixir未知注册表错误

我最近根据文档升级了项目中的pubsub依赖项,但每当我运行服务器时都会出现以下错误: an exception was raised: ** (ArgumentError) unknown registry: Demo.PubSub (elixir 1.10.2) lib/registry.ex:1239: Registry.info!/1 (elixir 1.10.2) lib/registry.ex:920: Registry.register/3 (phoenix

Elixir 长生不老药中两个日期时间差的计算方法

为了计算两个日期之间的年数,我在iex上编写了以下代码: >date1 = {{2016,3,21},{0,0,0}} >date2= {{1983,12,27},{0,0,0}} >:calendar.time_difference(date1,date2) 返回两个日期之间的天数。是否有其他方法来计算差异?Erlang日期处理非常糟糕,因此最好使用一些外部库来管理日期。比如说 JoséValim还表示,他们为长生不老药推出了统一的日期/时间LIB,因此他们可能已经为下一个

Elixir 您需要使用EXTO来查询数据库吗?

我发现了这个关于使用异位的链接。 . 模式已经在数据库中创建,为什么要在这里声明?在使用odbc/jdbc/odac驱动程序时,我们使用类似于stmt的exto.Adapters.SQL.query,并且不那么复杂和简单 那么您在哪里提供stmt:exto.Adapters.SQL.query(YourRepo,“SELECT$1”[1])? 它在web/models/abc.ex中吗? 你是如何得到结果的? 您能否介绍一下使用direct SQL无法从CTO中获得的一些好处?请您用更详细的描述

Elixir 如何使用JSON将地图发布到Phoenix?

我是Elixir1.3.2和Phoenix 1.2.1的新手,在完成教程后,我正在尝试将用户对象(地图)发布到Phoenix。我用的是邮递员和正确的网址。起初,我尝试了一个带有json对象的原始主体,但随后出现了一个缺少键的异常:预期键“user”出现在params中,请发送预期键或调整您的scrub_params/2调用 然后,我在postman中使用了formdata选项,其中有一个键:“User”和一个值:{email:foo@bar.be,密码:“s3cr3t”}。这导致elixir A

Elixir 用于测试的Phoenix endpoint server获胜';开始

我正在使用ex_admin,启动Phoenix服务器时遇到问题。我正在与Hound建立集成测试。ex_admin在测试/支持框架中有一个Phoenix端点。当我将endpoint server的配置设置为true时,我得到一个错误: ** (EXIT from #PID<0.70.0>) shutdown: failed to start child: Phoenix.Endpoint.Server ** (EXIT) shutdown: failed to start

从Elixir中的列表中按值获取地图

我正在创建一个简单的服务,它从用户列表中接收电子邮件地址并查找用户 这是一个简化版本,包含用户列表。我想根据用户的电子邮件地址提取用户 def endpoint do [%{email: "foo@example.org", account_type: "full"}, %{email: "bar@earxample.org", account_type: "standard"}, %{email: "baz@example.org", account_type: "full

Elixir 依赖本地项目或私人回购的长生不老药

我对长生不老药和凤凰都是新手。目前,我对从私人或本地混合项目下载或使用库有一些担心。 假设我的lib项目名称为:my_custom_mix_app,它是一个OTP app,使用gen_server。我希望它能够像下面我的phoenix应用程序中的代码片段一样 defp deps do [{:phoenix, "~> 1.2.1"}, {:phoenix_pubsub, "~> 1.0"}, {:phoenix_ecto, "~> 3.0"}, {

Elixir 一个长生不老药OTP主管能不能;使用“主管”;还是说它必须;使用Genserver";?

因此,看看这些例子,我有点困惑: elixir文档()似乎建议您只需使用“use Supervisor”宏即可构建监督树 但我在博客帖子/随机互联网搜索中看到的所有例子都“使用Genserver”。那么,监督树是否必须使用Genserver接口 我想我需要一些指向正确方向的指针,可能是要查看的代码或更清晰的示例。在复杂应用程序中设计监控树可能是构建opt应用程序最具挑战性的方面之一。然而,在大多数情况下,我发现大多数应用程序都需要这种复杂性 首先,把监管者的概念和他们监督的过程结合起来。i、 e

VPS上的Elixir应用程序可以';t在守护进程模式下从ssh启动

我已经用Phoenix+Elixir构建了一个应用程序,并用distillery将其部署到服务器上。 在我尝试创建一些bash脚本来自动化部署之前,一切都很顺利,仅供参考:我已经尝试过了,但它不符合我的需要。 当我登录并运行时,尝试在我的VPS上以守护程序模式运行应用程序时,我总是成功的 sudo my_app/bin/app start 但是,当我使用远程命令运行ssh时 ssh user@some_ip -C "sudo my_app/bin/app start" 它无法启动,shell

Elixir 我应该如何管理插入到相关表中

我有一个账户表,它链接到电子邮件表,大致如下: %{ username: "test", password: "secret", emails: %{email: "test@123.com"} //<- nested } 目前,我对帐户的更改集使用cast\u assoc拉入电子邮件: |> cast_assoc(:emails, required: true, with: &Email.changeset(&1, &2)) 但

Elixir 列表上的EXTO多构建关联

我想在具有多个的多事务中插入一个列表。比如: Ecto.Multi.new() |> Ecto.Multi.insert(:main, Main.changeset(%Main{}, attrs)) |> Ecto.Multi.insert(:child, fn %{main: main} -> Ecto.build_assoc(main, :child, %{name: "aaa"}) # inserts just one end) |> Ecto.Multi.ru

如何在Elixir/Phoenix中的多个并发请求之间共享结果?

我有一个使用Phoenix用Elixir编写的API服务。它具有以下端点: 接收字符串参数 检查结果是否已存在于缓存中(DB或文件,参数为cache key): 如果是,请立即返回结果 如果否,则执行对第三方服务的外部请求,处理请求响应,缓存结果,然后返回 它工作得很好。但现在我想在并发请求之间共享结果:如果有一个请求a正在等待第三方服务响应或处理结果,那么具有相同参数的其他请求不应该执行相同的任务,它们应该等待来自请求a的结果 如果有人能帮我找到解决方案,我将不胜感激。只需将调用第三方服务

Elixir 如何将atom参数与cond语句子句匹配

我想将以下函数放在一个函数中: def discount(:standard), do: &standard/1 def discount(:bronze), do: &bronze/1 def discount(:silver), do: &silver/1 def discount(:gold), do: &gold/1 大概是这样的: def discount(:rank) do cond do :standard -> &a

上一页 1 2 ...  78   79   80   81    82   83   84  ... 下一页 最后一页 共 125 页