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更改了向进程发送消息的符号?

我注意到在elixir版本0.10.1中,您向这样的进程发送消息 my_process <- :message, self Process.send my_process, :message, self 此更改的原因是什么?在此更改之前,列表理解如下所示: lc x inlist my_list do # ... end 然而,这种语法对于新手来说很奇怪,因此Elixir团队开始寻找替代方案。获胜的语法是 for x <- my_list do # ... end

Elixir 如何在EXTO中更改字段类型?

我有一个模式: schema "editables" do field :title, :string field :content, :string timestamps end 现在我想将一个字段的类型从:integer更改为:binary。 因为使用add不起作用,所以编写迁移的正确方法是什么 def change do alter table(:editables) do add :title, :binary add :c

Elixir 长生不老药(EXTO)中包含哪些方法?

我们在Rails中使用include或其他类似的方法或SQL; 那么ElixirEcto中解决这个问题的函数是什么呢?看起来像是在寻找预加载 JoséValim的以下博客文章中的示例应该会让您有所收获: Repo.all from p in Post, join: c in assoc(p, :comments), where: c.votes > p.votes preload: [comments: c] 在EXTO中,您具有预加载功能

Elixir Exrm中的节点名称参数化

我想在单机上使用带有Erlang的Exrm 我需要创建多个仅在节点名称上不同的版本 我知道,我可以在rel/vm.args中配置节点名称,但它将是静态的。我是否可以用不同的节点名生成多个版本?我正在研究同一个问题。一种可能的办法: rel/vm.args支持操作系统环境变量参数化。所以你可以做一些像 ## Name of the node -name ${MY_NODE_NAME} ## Cookie for distributed erlang -setcookie ${MY_COOKIE}

Elixir 大文件和哈希-性能问题

我正在尝试使用以下代码逐行散列文件(16 MB): def hash(data, protocol) do :crypto.hash(protocol, data) |> Base.encode16() end File.stream!(path) |> Stream.map(&hash(&1, :md5) <> "h") |> Enum.to_list() |> hd() |> IO.puts() 在大约2

Elixir 长生不老药:为什么两个布尔运算符用于同一个操作

Elixir似乎每个操作有2个布尔运算符: || , or && , and 唯一的区别是对于or和etc,第一个参数本身必须是布尔值。当| |,&&&等似乎能够处理所有事情时,第二组运算符的意义是什么?在我看来,当您不想将任何其他值(或数据类型)解释为true时,想要将布尔值作为第一个参数可能会有所帮助,因为elixir将接受除nil和false之外的任何其他值。用户可能希望确保参数是布尔值(true或false),并且除了任何其他类型的值之外,不会意外 像or、and这样的

Elixir 有类似Python的版本吗';什么是长生不老药柜台?

您可以使用计数器计算事件的发生次数。此外,您还可以从如下所示的iterable创建计数器: >>> from collections import Counter >>> Counter("asdasdafasdasdasd") Counter({'a': 6, 's': 5, 'd': 5, 'f': 1}) >>> Counter([1,2,3,2,1,2,2,5]) Counter({2: 4, 1: 2, 3: 1, 5: 1})

Elixir 像凤凰号一样的轨道引擎

我对Elixir/Phoenix非常陌生,我想知道如何在Phoenix中引入Rails引擎功能 我想要的很简单,我希望能够创建一个核心应用程序,比如一个小型crud应用程序 我希望能够将该应用程序的功能(控制器、视图、模型)导入到一个全新的phoenix应用程序(克隆)中,因此基本上所有内容都是从我的核心应用程序扩展而来的。我可以运行全新的应用程序,所有内容都将作为核心应用程序运行。我希望能够通过创建的新应用钩住/扩展核心功能(进行新的迁移/模型,调整一些视图等等…) 我听说过伞形项目,但我不确

Elixir 长生不老药

我想在Elixir中创建一个枚举。可能吗?我所说的枚举是指来自C/C++或Ruby或许多其他语言的枚举。我知道Enum模块,但那只是一个模块——基本上是函数的容器。你可以使用原子。对于静态分析,可以定义只接受特定值的类型,并在TypeSpec中使用该类型。然后,您可以使用示例检查代码 @type state :: :a | :b | :c @spec set_state(pid, state) :: :ok | {:error, term} def set_state(pid, state)

Elixir 使用MySQL服务器运行测试时出现DB OwnershipError

当使用混合测试运行一组测试时,我得到 ** (DBConnection.OwnershipError) cannot find ownership process for #PID<0.414.0>. When using ownership, you must manage connections in one of the three ways: * By explicitly checking out a connection

Elixir 长生不老药/凤凰二元原子

我有一张表格 如果我只使用英语,它会非常好用。但中文,或任何其他返回错误 ** (ArgumentError) argument error :erlang.binary_to_atom("刺繡等等我", :utf8) (elixir) src/elixir_parser.yrl:512: :elixir_parser.yeccpars2_93/7 我相信这与编码有关。如何将字符串转换为可接受的格式 提前谢谢 自当前版本的Erlang(19)起,Atoms不能包含255以上的代码点 二元到二

Elixir Slime-在Javascript标记中嵌入Elixir

如果我有一个assigns变量,如何将其传递给Javascript标记?以下内容在Ruby Slim中有效,但在Elixir的Slime中似乎无效 javascript: window.currentUser = { username: @username } 可以使用{}注入值: 您可能希望对变量进行JSON编码,以便将字符串作为双引号转义JavaScript字符串插入。使用毒药,您可以: javascript: window.currentUser = { username: #{

Elixir get(assigns,:key)返回nil而不是视图中的预期值

在模板中: <%= @key %> 给我nil。根据文件 @实际上是一个将@key转换为Map.get(assignments,:key) 那么为什么上面返回的nil不是预期值? 更让我困惑的是,当我打字的时候 conn.assigns.key 在视图中,它为我提供了所需的值。在模板中@conn.assigns和assigns是两个不同的东西赋值映射来自EEx,它启用了@var语法conn.assigns来自插头,是不同插头中所需数据的公共存储空间。 调用Phoenix.Cont

Elixir 从另一个应用程序使用GenServer

我现在正在努力在我的伞式应用程序的另一个应用程序中使用GenServer 结构: 应用程序: a项目 b项目 Project_a和Project_b都是--sup应用程序,我想在Project_b中使用Project_a中的GenServer。我已将该项目包含在我的deps.exs文件中,但我不知道下一步要做什么 如果我打开observer,我会在菜单中看到这两个应用程序,但由于project_b无法使用project_a,我会不断出错 有人知道我忘记了什么吗?我忘了在project\u b

在Elixir中将项目拆分为多个项目

我有一个地址列表,我需要修复记录,一些记录以门牌号为范围,我需要将其拆分为多个记录。我如何列举清单并修复/复制记录 defmodule EnumTesting do def list_stuff() do list = [ %{street: "street", nr: "2" }, %{street: "street", nr: "4" }, %{street: "street", nr: "6-10" } ] list |> Enum.filter(&ne

Elixir 如何为File.stream创建分散引用?

创建流之后,人们通常会运行流来开始流!听起来很直接 比如: 但是,我如何才能推迟运行流,直到我需要运行它?我能看到的唯一方法是在分散引用中注册流,然后使用该引用运行流 这可能吗?怎么做 编辑 以下是我试图做的: File.Stream返回一个值,您可以根据需要多次存储和运行该值。流作为函数的组合在Elixir中实现。像这样的 stream_maps = Map.put(%{}, client_tag, File.Stream!(path) ) 过了一段时间 stream_maps |>

Elixir 需要对2个字段中的OR-1进行条件验证

如何对OR逻辑进行条件验证,检查2个值中是否有1个值存在,或者两个值都存在 因此,例如,如果我想检查以确保电子邮件或移动字段已填充。。。我希望能够将列表传递到validate\u required\u inclusion的字段,以验证列表中至少有一个字段不为空 def changeset(struct, params \\ %{}) do struct |> cast(params, [:email, :first_name, :last_name, :password_h

Elixir 调用外部API的递归

我必须使用外部API来生成屏幕截图。在第一步中,我触发屏幕截图的生成并接收一个job\u id。然后我必须等待并可以下载带有给定作业id的屏幕截图。不幸的是,我不知道我要等多久。有时结果在10秒后就准备好了,有时则没有。如果未准备好,函数image\u url/1将返回nil。如果准备就绪,则返回图像URL 目前我使用45秒的睡眠时间,这是次优的 我不明白如何使用递归的概念来实现函数生成屏幕截图/1,首先运行新的作业id(url),然后尝试图像url/110次,其间或直到不是nil 我如何用递归

您可以在Elixir/Erlang中将函数作为消息传递吗?

据说函数是Elixir/Erlang中的一等公民。函数可以作为消息传递吗 在探索Elixir API时,我遇到了Agentget_和updateagent、fun、timeout\\5000。我认为get和update操作是原子的。我认为这是唯一可行的方法,如果乐趣是在代理进程上运行的,而不是在与代理交互的客户端进程上运行的 如果fun在客户端进程上运行,那么它会引发很多关于保证原子性和客户端进程失败的问题。是的,您可以 从 函数fun被发送到代理,代理调用传递代理状态的函数 代理进程本身运行函

在Elixir中调用匿名函数100次

我试图用长生不老药解决经典的起泡问题。我找到了几种不同的方法来解决这个问题,但最好的方法是: fizzbuzz = fn (0, 0, _) -> "FizzBuzz" (0, _, _) -> "Fizz" (_, 0, _) -> "Buzz" (_, _, a) -> a end fb = fn n -> fizzbuzz.(rem(n, 3), rem(n, 5), n) end fb.(10) 我现在的问题是我想调用fb匿名函数100

Elixir 工作人员重新启动时,主管仍保持状态

我有一个AgentTest作为保持状态的工作人员,还有一个Supv作为监视器AgentTest defmodule AgentTest do use Agent def start_link(state) do Agent.start_link(fn -> state end, name: :test) end def incr do Agent.get_and_update(:test, fn state -> {state, state +

Elixir 伞里的两个凤凰应用程序

所以我有一个只做json的凤凰城大项目。早午餐等甚至没有安装。现在,我们正在创建需要SEO友好的面向公众的页面,因此我们将使用标准浏览器管道和呈现html模板等。这个面向公众的应用程序可能会部署到自己的实例中并独立扩展。我想分享我的核心模式/模型代码和一些UTIL。我应该如何设置?雨伞单独的项目?(但仍将采用相同的回购协议) 我收到了一些建议,建议我开始使用雨伞应用程序,但我有两个问题: 1) 如果我为不同的端口配置了它们,从根目录运行mix phx.server会同时运行它们吗 2) 我是否应

Elixir 酒厂使用健忘症

有没有可能将健忘症用于酿酒厂。由于Dillery版本中没有mix,因此我不确定如何创建mnesia db。提供了一些有关运行迁移等任务的指导 似乎只需调用数据库模块create功能: def run(args) do options = parse_args(args) copying = parse_copying(options) db = ensure_database_module(options[:database]) if options[:sc

在Elixir中调用apply(String.t…)

如果模块名为字符串,如何调用模块的方法?我知道如何使用apply。如果模块的名称是字符串,如何使用它?您必须将字符串转换为atom。所有Elixir模块都位于Elixir名称空间中(基本上是为了防止名称冲突),因此表示Elixir模块的原子都以Elixir开头。: iex(1)>defm模块,do:def foo,do:IO.puts“BAR” iex(2)>name=“M” iex(3)>apply(String.to_atom(“Elixir.”名称),:foo,[]) 酒吧 您必须将字符串

Elixir 使用EXTO.multi的动态插入数

我的应用程序中有一个Foo模式,其中包含许多模式栏 我想要一个函数,它为一个Foo获取一个id,创建该Foo的一个副本并插入它,然后创建所有与新Foo关联的条的副本。给定一个具有多个子条的Foo,此函数将一次性复制该Foo和所有这些条 我使用EXTO.Multi来处理类似的事情,但我不确定如何设置它来执行不同数量的操作。到目前为止,我有: resolve fn (%{foo_id: foo_id}, _info) -> oldfoo = Repo.get!(Foo, foo_id)

如何使用Elixir流按键进行分区并按顺序重新连接

我正试图围绕Flow构建一个具有以下特征的并行处理管道: 传入事件的形式为{offset,%{“id”=>id} 偏移量是一个单调递增的整数 id是一个任意数字 我只需要保留每个id的顺序,这样就可以并行计算出不同的id。因此划分 下面是一个示例流,用于生成无限数量的这些元组: stream = Stream.unfold(1, fn i -> offset = i+1 element = {offset, %{"id" => Enum.random(1..10_000)}}

Elixir 带有保护子句的内省函数

给定一个模块有两个具有相同算术性但不同保护子句的函数,我(理想情况下)如何看到这些子句是什么,或者至少有两个函数 defmodule Test do def greet(name) when name == "foo" do IO.puts("Hello, bar") end def greet(name), do: IO.puts("Hello, #{name}") end Test.\uuu info(:functions)不起作用,因为它只返回[greet:1]您可

Elixir 如何在Phoenix中清理每个测试用例中的数据

如果第二个测试用例在第一个测试用例之后运行,那么它将失败,因为数据库具有在第一个测试用例中创建的ReservationInfo条目 defmodule MyProj.TestABC do use ExUnit.Case alias MyProj.Models.ReservationInfo alias MyProj.Repo test "Create Coordinates" do reservation_result = Reservation

Elixir 尝试使用管道,但不确定如何提取以前的值

假设我现在有这样的东西: session = conn.assigns[:session] user = User.find_by_id(session.user_id) 我怎么能在这个场景中使用|>系统 conn.assigns[:session] |>User.find_by_id 如何传递以前的调用并从中获取属性用户id 我还看到人们使用|>并且我认为他们也在指定算术,这是如何工作的 some_code |> some_function(&/2) some

Elixir 评估长生不老药中的参数(含体外)

查看下面的select()行: def query_group(user, group_by, filters \\[]) do from(Click) |> select([c], {c.^group_by, count(c)}) |> where([c], c.link_user_id == ^user.id) |> where([c], ^filters) |> group_by([c], ^group_by) |&g

elixir-外部变更集成功和失败代码不再运行

此代码用于向messages变量添加字符串,然后在http响应中将其发送回。现在,没有任何内容添加到messages变量中。:ok和:error块中的代码行不再运行。我现在应该在哪里处理错误和成功案例,以添加关于错误和关于成功的消息 messages = {} changeset = Api.UserProduct.changeset( user_product, %{:voted_vegan => true} ) case Api.Repo.update(ch

Elixir phoenix websocket实现上的Ranch侦听器错误失败

我已经在我的phoenix应用程序中实现了websocket。在成功连接并加入我的websocket之前,但现在我遇到了以下错误: error] Ranch listener MarketPlaceDisbursementServiceWeb.Endpoint.HTTP had connection process started with :cowboy_clear:start_link/4 at #PID<0.499.0> exit with reason: {%Jason.D

你能在elixir中创建条件插件吗?

我想从if-else语句的else部分调用一个plug 我尝试调用plug SpiderWeb.AdminAuth,但是我得到了ArgumentError:无法在函数/宏中设置属性@plugs。 我还尝试了SpiderWeb.AdminAuth.call(conn),但在get/user/1处出现了错误UndefinedFunctionError:function SpiderWeb.AdminAuth.call/1未定义或私有。 我也可以在else部分重写整个插件,但这违背了DRY原则 这是用

使用IO打印到标准输出,不断行。放入elixir

我正在尝试打印一个值到控制台,而不使用换行符。例如,如果我尝试以下内容 IO.puts("Hello ") IO.puts("World") 我希望它打印成一行 Hello World 编辑:我需要做的是直接从以下位置打印,不带尾随CR: write/2的行为类似于put/2,但不添加换行符。您可以使用字符串插值来获得更好的效果: greeting = "Hello" subject = "World" IO.puts "#{greeting}, #{subject}!" 输出: Hel

Elixir 无法查询关联表

我有一个简单的todo/author模型,其中todo有一个author\u id字段 模型定义如下: defmodule TodoElixir.User.Author do use Ecto.Schema import Ecto.Changeset schema "authors" do field :email, :string field :name, :string field :password, :string, virtual: true

Elixir 为伞形项目选择发布配置

我有3个总括项目: 业务逻辑; RESTAPI; 网状物 我在root mix.exs中有以下配置: 问题是每次运行mix release_name时,运行时配置都是从根项目加载的,而不是从指定的项目加载的 我甚至尝试通过以下方式加载其他配置: for config <- "../apps/*/config/releases.exs" |> Path.expand(__DIR__) |> Path.wildcard() do import_config config end

Elixir 有没有办法在Phoenix中启动服务器时自动启动浏览器?

我有一个Phoenix(1.4)LiveView(0.8)应用程序,我希望在启动服务器时自动打开浏览器窗口。有人知道这是否可以做到,如果可以,如何做到 我试着看看我是否可以像在FE应用程序中那样在Webpack中配置该选项,但我无法让它正常工作 谢谢 最清晰的方法是使用自定义的mix任务,唯一的问题是如何实际打开浏览器。这已在以下方面实施: 现在剩下的就是创建一个自定义任务,从配置中获取主机和端口,并在其中调用phx.server任务,然后打开浏览器: defmodule Mix.Tasks.H

Elixir Simple模块产生;参数错误“;只有

我有一个简单的、独立的模块,可以产生: elixir impl_bad.ex ** (ArgumentError) argument error 长生不老药 **(ArgumentError)参数错误 在iex中: => iex Erlang/OTP 23 [erts-11.1] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe] Interactive Elixir (1.9.4) - press Ctrl

Elixir 在exto.Multi.run/3中没有匹配的函数子句

遵循本教程 是什么导致了这个问题? 是什么导致了这个问题? 是什么导致了这个问题? 是什么导致了这个问题? 是什么导致了这个问题? 是什么导致了这个问题? 是什么导致了这个问题 代码:问题中的写作比例是一个愚蠢的验证我使用的是一个过时的ecto版本(2.2) 我以为我在3号,但我没有 alias Ecto.Multi alias ElixirRest.Account import Ecto.Query, only: [from: 2] require Logger def

Elixir/Plug/Phoenix:Calling halt不';t在测试过程中,不要阻止下游插头被调用

如果我启动phoenix应用程序的一个实例并发出请求,我的插件将相应停止。然而,在测试环境中执行相同的操作时,halt不会阻止下游的插件被调用,这会导致测试失败。我认为问题可能来自我在测试期间调用路由器的方式。下面是我使用的helper函数,它大量借用了phoenix框架中的类似函数: def call(router, verb, path, params \\ nil, headers \\ []) do add_headers(conn(verb, path, params), he

Elixir 如何在phoenix/Exto上创建嵌套记录?

我想知道是否有人能帮我解决我一直在努力解决的问题 长话短说,我有一个模型“用户”和另一个“个人资料”。配置文件属于用户,并且用户有一个配置文件。到目前为止一切都很好 当用户注册时,我需要用户模型的电子邮件和密码以及属于配置文件模型的名字和姓氏。 那么我的问题是。。如何在myRegistrationController中插入带有配置文件的用户记录 以下是控制器当前的外观(基于我从Jose关于关联和嵌入的帖子中收集到的内容- def create(conn, %{"user" => user_

Elixir Phoenix框架中CSS样式的自动引用器

在开发Rails应用程序时,我经常使用需要供应商前缀的特定样式的跨浏览器兼容性 Phoenix Framework是否有一个等效的“gem”(或“plug”)或包(提供autoprefixer功能的东西)?我对此表示怀疑。你不需要菲尼克斯为你这么做。我怀疑。你不需要菲尼克斯为你做这些,只要使用它或其他任何东西就行了。看看这个: 这应该可以让您在早午餐时使用Autoprefixer 我还没试过,但它在明天的名单上。 我会更新,如果我遇到任何抓到的,但它似乎很简单 看看这个: 这应该可以让您在早

如何在Elixir回购交易中添加STDIN副本

我正在试验ElixirExto,现在我需要在代码中实现从STDIN复制。我在github上的postgrex.ex中找到了一个示例: Postgrex.transaction(pid, fn(conn) -> query = Postgrex.prepare!(conn, "", "COPY posts FROM STDIN",[copy_data:true]) stream = Postgrex.stream(conn, query, []) Enum.into(File.s

Elixir 使用Guardian创建电子邮件验证url

我正在一个实现用户身份验证(使用Comeonin和Guardian)的网站上工作 我正在实施电子邮件验证。我想我可以利用Guardian中的函数,使用JWT令牌生成url。根据,这似乎是一个合理的解决方案(只要url使用https并且令牌在相对较短的时间内过期) 以下是我迄今为止编写的代码: def email_verification( user = %User{} ) do if ( user.email != nil ) do claims = Guardian.Claims.

Elixir 功能头中的Pin运算符

我正在读《编程长生不老药1.3》(PragPub),偶然发现了一些对我来说没有多大意义的东西。在第42页,作者描述了闭包,指出 greeter = fn name -> (fn -> "Hello #{name}" end) end 返回的函数“记住”提供的name参数的值。这就是闭包的本质。然而,在2页之后,他给出了以下示例: defmodule Greeter do def for(name, greeting) do fn (^name) ->

Elixir 为什么';当我启动其父进程时,是否启动该子进程?

假设我设置了以下主管树,其中一个父级启动一个子级,子级启动其孙子级: defmodule NestedSupervisorTree do # this will be the top line supervisor use Supervisor def start_link, do: Supervisor.start_link(__MODULE__, :ok, name: __MODULE__) def init(:ok) do children = [

Elixir 如何使用Postgrex扩展?

我正在尝试使用由提供的tsvector扩展。但是我如何在我的Phoenx项目中实际使用它呢?这是我在dev.exs中的设置 config :project, Project.Repo, adapter: Ecto.Adapters.Postgres, username: "postgres", password: "postgres", database: "project_dev", hostname: "localhost", pool_size: 10, ext

Elixir 在x时间段后失败时重试功能 问题:

我有一个通过Cronjob触发的函数。这个cronjob在晚上10:00pm启动函数,但是假设函数没有正确处理所需的数据。我想失败,但让功能重试1小时。我将如何处理这个问题 代码: 从这段代码中可以看出。如果查询没有找到问题,我会将case语句发送到failure,但在该faily case中,我希望在1小时内返回函数。我怎样才能用长生不老药/凤凰做到这一点?谢谢你的帮助 您可以使用genserver发送消息,在1小时后执行检查问题 如果服务器关闭,计时器将不会继续倒计时 如果给定的目标是PID

上一页 1 2 ...  45   46   47   48    49   50   51  ... 下一页 最后一页 共 125 页