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 IEx-如何取消多行命令?

当我使用IEx并输入一个类似于附加括号或“”的拼写错误时,大多数时候我都会遇到语法错误。但也有类似的情况: iex(3)> Enum.each '12345', &(IO.puts(&1")) ...(3)> end ...(3)> ) ...(3)> ' ...(3)> end ...(3)> "" ...(3)> ... ? How to produce syntax error ?

Elixir 在EXTO中插入相关模型

我正在尝试插入发票结构及其关联的发票项。我能够插入发票数据,并调用匿名函数来验证、转换和插入每个项目。由于insert/2不生成退货,如果一个项目未通过验证或插入,我如何获取该项目的发票id,同时仍然能够回滚整个交易 我已将代码放入我自己的回购协议中,如下所示: def insertassoc(params) do Repo.transaction(fn -> i = Invoice.changeset(params["data"], :create) if i.va

Elixir 如何从其他Phoenix应用程序连接到远程/外部Phoenix应用程序频道?

我希望通过一个遗留API应用程序增量移植到Phoenix。理想情况下,我会将应用程序的子域划分为单独的Phoenix应用程序,并将它们托管在不同的服务器节点上 我希望使用凤凰频道来促进应用程序之间的交流。如何将一个Phoenix应用程序连接到另一个Phoenix应用程序的频道和主题?例如,我想用WebSocket设置一个“jobs.foo.com”子域,如: socket "/ws", Jobs do channel "jobs:work_orders", WorkOrdersChanne

Elixir 长生不老药凤凰日期_select在年份select中持续10年

有谁能告诉我们如何设置它,以便菲尼克斯的date\u selecthelper将当前年份显示为最大年份,并将过去10年显示为可选择的选项。 目前它向我展示了从2010年到2020年的时间。因为这是一个出生日期字段,所以它不可能在将来出现。中有一个例子: 这方面有一个例子: 谢谢@michalmuskala,我们可以做年份:[options:1900..DateTime.current\u year]?是的,这是完全可能的。例如,您可以利用EXTO,并使用EXTO.Date.utc.year。您也

如何在超时后终止Elixir进程

我如何启动长生不老药进程,然后在超时后将其杀死?我有这样的代码: defmodule OperationsManager do def run_operation do spawn fn -> # long operation end end end 内部操作可能持续太长时间,无法等待其结束,因此我需要从manager中终止该进程。我怎么做 编辑: 重要细节:我需要生成几个操作,所有操作都应该有单独的超时。您可以使用在进程之间发送消息来管理各种情况

Elixir 如何在phoenix框架中提供静态页面?

我想在Phoenix框架中提供静态页面,以便在角度视图中使用它。我知道我可以提供常规HTML,但我想摆脱默认的LayoutView。我可以用一个解决方案,只保留一些Phoenix视图,这些视图不会“继承”自LayoutView。有可能吗?您可以通过在priv/static中设置一个文件并匹配插件中的路径来提供静态文件。静态选项: plug Plug.Static, at: "/", from: :hello_phoenix, gzip: false, only: ~w(css

Elixir 属于多个父母

您好,我对Elixir和models/DB/API一般都是新手,我对如何实现以下目标有些迷茫: 当我在API中向/v1/events发送tag\u id和gate\u id时,我想创建一个事件,但我不知道如何在控制器中处理这个问题 我用简单的模型做到了这一点,它们只属于一个父对象,我只是在变更集中管道构建assoc,但是,我不知道如何处理多个父对象。我甚至尝试了一个粗略的解决方案,手动创建一个变更集,手动设置gate\u id和tag\u id像这样Event.changeset(%Event{

Elixir 如何使用宏创建具有保护的匿名函数?

我一直在研究一个宏来动态生成匿名函数。函数应该有两个子句。当警卫满意时,第一个子句返回TRUE。然而,第二个是默认值,如果与第一个子句不匹配,则返回FALSE。例如: fn xfield when xfield > 2 -> true _ -> false end 这是我的宏原型 defmacro condition_function(field, guard) do clause1 = quote do: (unquote(field) when unquo

Elixir Phoenix Phoenix.HTML.Safe未实现

在我的post模型上,我实现了一个简单的验证 def changeset(model, params \\ :empty) do model |> cast(params, @required_fields, @optional_fields) |> validate_length(:content, min: 2) |> validate_length(:content, max: 500) end 在提交Post-create表单视

Elixir 如何使表单和交易在凤凰城发挥良好作用+;外星人?

我正在玩Phoenix+Ecto,我偶然发现了一些我觉得不习惯的东西 我有一个表示邀请的表单。在创建邀请时,我们还需要创建一个用户,显然我希望这两种情况都发生在一个事务中,以便保持数据的一致性。在我的表格中,我要求姓名和电子邮件 由于我希望视图中的邀请变更集能够正确表示错误,因此我最终得到了以下代码。。。但是看起来不太好 你知道一个更好的方法在凤凰+星上做到这一点吗 def创建(参数)do 回购交易(fn-> case Repo.insert(User.email_changeset(%User

Elixir 如何在EXTO模式中存储多维数组?

假设我希望将一组坐标([[x1,y1],[x2,y2]])存储到Postgres中。首选的数据类型是什么?文档允许以 :coordinates, {:array, :float} 但这只对一维数组有用。您可以使用 field :coordinates, {:array, {:array, :float}} 但这不是最好的解决方案。看起来很糟糕,允许将类似这样的内容插入到数据库中,这显然是不协调的。我更喜欢自定义类型 #lib/coordinates.ex defmodule Coordina

Elixir 为什么Enum.concat比++;在连接列表时?

我尝试使用以下工具进行一些快速基准测试: defmodule concatistbench do 使用Benchfella @a1枚举到列表(1..10_000) @a2清单清单(10万至20万) 工作台“+”do @a1++@a2 结束 工作台“Enum.concat”do 枚举concat(@a1,@a2) 结束 结束 在运行时: $ elixir -v Erlang/OTP 19 [erts-8.0.2] [source] [64-bit] [smp:4:4] [async-thread

Elixir 如何将html添加到phoenixframework flash消息?

我在控制器中尝试了以下操作: conn |> put_flash(:info, "text with <a href=\"link\">twitter<\\a>" |> render "index.html" 也许有一个选择?(尽管建议不同)这是我在项目中所做的: defmodule MyApp.PageController do use MyApp.Web, :controller import Phoenix.HTML.Link def i

Elixir 当代码几乎相同时,如何简化'case'操作

我的控制器中有以下代码: def search(conn, %{"q" => param}) do locale = conn |> get_session(:locale) case locale do "pt" -> searchEmpresas = Skeleton.Customers.Empresa |> Skeleton.Customers.search_pt(param) searchLojas =

为什么elixir没有基于类型的方法在实例上工作?

正在学习elixir,我想了解为什么elixir选择如此冗长,并基于助手方法进行操作,如: String.upcase(name) 而不是像这样做: name.upcase 在Scala中,您可以执行name.toUpperCase,它仍然会返回一个新变量,因为它是不可变的 不管怎样,只要试着理解这种方法的原因,因为我确信这是一个原因。在Elixir中没有对象或方法这样的东西。只有数据和函数可以作用于这些数据-两者是分开的。在Elixir中没有对象或方法之类的东西。只有数据和函数可以对这些数

Elixir Phoenix:API控制器获取错误,与参数无关

我有一个控制器,看起来像这样: defmodule PrefectWeb.DocumentController do use PrefectWeb, :controller alias Prefect.Queue def create(conn, params) do case Prefect.add(Queue, struct(Prefect.Document, params[:id])) do nil -> conn |> p

Elixir 获得月初长生不老药

无法从外部日期获取月初 Ecto.Date.utc => #Ecto.Date<2017-09-15> Ecto.Date.utc.beginning_of_month requires => 2017-09-01 exto.Date.utc=>#exto.Date Ecto.Date.utc.Start\u of_month requires=>2017-09-01 您只需使用地图更新语法将day的值设置为1: iex(1)> today = Ecto.Da

如何定义具有未使用参数的elixir函数的规范?

即使参数未在函数体中使用,我是否可以用这种方式定义函数参数的类型?是的,您可以这样做,并且在语法上是有效的。@spec属性应包含在一个位置收集的所有预期输入和输出。在这种情况下,您是在对透析器(并隐式地对代码的读取器)说,此函数将只接受字符串 问题是你为什么要这么做?如果不需要这些参数,为什么要接受它们?如果这是最后一个子句,则一切正常,因为该函数还有其他定义,它们只接受字符串,因此@spec是有效的。如果允许任何参数,则可以在定义中使用typeany() @spec another(Strin

Elixir 预加载尝试获取错误的列名

我有以下对象 defmodule Ketchup.Review do ... schema "order_review" do ... has_many :review_tags, Review.Tag end end 及 并使用以下查询 @preload [:review_tags, :order] def get_review_by_order(order_id) do Ketchup.Review |> where([c], c.order

Elixir 如何从混合任务返回特定的退出代码?

我正在编写一个混合任务,它应该是CI的一部分,如果构建过程失败,它应该停止构建过程,这通常是使用来完成的,其中0代码表示成功,非0代码表示错误。我希望能够返回一个任意的退出代码来表示不同类型的失败 在混合任务中我该如何做?的文档中没有任何说明。请使用。例如,将退出{:shutdown,15}放在混合任务中将导致以下结果: $ mix compile && mix custom.task $ echo $? 15

Elixir 将Enum.filter与Enum.each组合

使用以下地图列表: [%{test: %{"one" => 1, "three" => 3, "two" => 2}}, ...] 这个代码不应该过滤任何东西吗 Enum.filter([map], fn(number) -> Enum.each(number.test, fn {k, v} -> v == 4 end)

Elixir 有没有办法从凤凰频道来回调用controller方法

我需要从phoenix频道调用控制器内部的函数。这是我的凤凰频道 //dashboardChannel.ex def join("dashboard:lobby", payload, socket) do IO.puts "Entered Room" if authorized?(payload) do {:ok, socket} else {:error, %{reason: "unaut

Elixir 忽略生成代码的透析器警告

我正在努力使我的库()能够很好地与透析器配合使用,以处理结果元组 目前,若给出不正确的数据输入,代码会引发一个很好的错误。然而,透析器指出,这种情况是从来没有必要的。我仍然想保留这个错误案例。向图书馆的新用户解释这个错误很有帮助,但我想让透析器忽略它 quote location: :keep do case unquote(right) do {:ok, unquote(left)} -> unquote(expand_bindings(rest, yield_b

Elixir 尝试在LocalHost中启动phoenix服务器时出现Tzdata错误

我正在尝试在phoenix的localhost上启动我的应用程序,但是tzdata出现了一个错误,导致应用程序无法启动。我对凤凰城没有任何经验,所以欢迎任何帮助。下面是我在尝试命令mix phoenix.server时遇到的错误 Generated contai_server app [info] Application tzdata exited: exited in: Tzdata.App.start(:normal, []) ** (EXIT) an exception was r

Elixir 将管道运算符与函数一起使用,但不使用参数

Elixir让我写下: "Elixir rocks" |> String.upcase() |> String.split() 我可以引入一个函数来组合上套管和拆分: upcase_split = fn (data) -> data |> String.upcase() |> String.split() end "Elixir rocks" |> upcase_split() 或 有没有办法做到这点?也就是说,不必给我需要贯穿整个过程的第一个论点命名 这

Elixir/Phoenix-控制器中的HTML表单解析

我有一个HTML表单: <form id="filtering-rule-form"> <input type="hidden" value="<%= @token %>" name="_csrf_token"/> User name/email prefix:<br> <input type="text" name="email-prefix" id="email-prefix">@railglorg.net<br> S

Elixir 嵌入式模式缓存?

我正在开发一个大型生产应用程序,我们使用嵌入式的_模式在用户记录和视图/模板中存储和显示一些用户配置。我最近更改了嵌入式_模式,删除了一个字段,构建了应用程序,并部署到了生产环境中 两天后,如果我对任何用户运行查询,该字段将不再显示在JSONB列中;但是,在应用程序中,它会继续为所有用户显示,直到页面刷新为止 我们的应用程序确实在某些作业中使用了Redis,但从查看混合文件可以看出,它没有缓存依赖项。在Phoenix或Exto中是否有一些现成的东西会导致这种情况发生?对于记录,问题是一台服务器没

Elixir 为什么这次考试不及格?

我做了一个测试来更新应该通过的用户变更集,但用户的验证不允许它通过,如果这是noob,很抱歉,我只是从elixir开始 test "renders errors when data is invalid", %{conn: conn, user: user} do assert conn = put(conn, Routes.api_user_path(conn, :update, user), user: @invalid_attrs) assert json_r

Elixir 在exto.Query上的exto.Schema中自动设置虚拟字段

在“链接时间”中,演讲者描述了如何通过如下转换函数管道化变更集,基于虚拟字段自动设置EXTO.Schema中的字段: defmodule MusicDb.Track do use Ecto.Schema schema "tracks" do field :title, :string field :duration, :integer field :duration_string, :string, virtual: true timestamps()

Elixir 如何在Wallaby中处理重定向?

我有一个这样编写的功能测试: confirmation_page = visit(session, "/confirm/#{id}") confirmation_page |> click(link("Decline")) confirmation_page |> assert_text("You have declined.") 但是,测试总是失败,因为在controller中,单击此页面时,我正在执行以

如何在测试中从另一个项目加载Elixir应用程序?

我正在开发一个生成器,打算作为归档文件安装,因此它应该没有依赖性。但在我的测试中,我希望能够测试生成器的某些运行是否在具有特定依赖项和配置的应用程序中按预期运行 我所尝试的: 我在priv/test\u app中有一个测试应用程序,我尝试从Application.start中的Mix.Project.in\u Project/4开始。所有的Mix.Project功能都按预期工作,但是Application.start找不到应用程序 我am能够使用System.cmd在测试应用程序的上下文中运行

Elixir HTTPoison.post的问题

我长期使用Poloniex API进行交易。 我以前的版本是用bashshell脚本编写的。现在,我在用长生不老药做代码 我现在面临的问题与API拒绝我的命令有关。 看这个测试将重复Nonce以查看是否生成了相同的签名 Bash tapiurl: https://poloniex.com/tradingApi postdata: command=returnBalances&nonce=1455742931958817 sign: 340970c8dc8b2f50c2772b2edf45

Elixir Shell表示二进制

我有以下声明 iex(5)> a = <<3>> <<3>> iex(6)> b = <<a::binary>> <<3>> iex(5)>a= iex(6)>b= 第一行,我创建了一个值为3的二进制文件。在第三行,我希望shell显示00000011而不是3。我知道先创建一个二进制文件(1.line),然后再转换成二进制文件是没有意义的。但是我希望shell显示的是00000011而

Elixir 确定地图是否具有某些关键点的正确方法

我有一个所需钥匙(所需钥匙)列表: 和地图(参数): 我想确定参数是否具有所需的\u键。我来自Ruby背景,对于Elixir来说,迭代似乎是错误的,但不确定如何进行模式匹配来做到这一点。使用和: 但不确定如何进行模式匹配才能做到这一点 如果必需的\u键是动态的,则无法进行模式匹配。如果是静态列表,则可以使用模式匹配: iex(6)> match?(%{"artist" => _, "track" => _, "year" => _}, map) false iex(7)&

Elixir 关于编译模块的警告 当我试图编译一个灵丹妙药模块(使用灵丹妙药1.3.2和Erlang R19)时,我得到了我认为是一个相当奇怪的警告。代码来自《介绍长生不老药》一书: defmodule Drop do def fall_velocity(distance) do :math.sqrt(2 * 9.8 * distance) end def fall_velocity(distance, gravity \\ 9.8) do :math.sqrt(2 * gravity * distance) end end

当我编译它时,shell说: warning: this clause cannot match because a previous clause at line 2 always matches drop.ex:6 第6行是第二个函数定义,第2行是第一个函数定义 但是,当我使用代码时,它可以正常工作: iex(12)> Drop.fall_velocity(20) 19.79898987322333 iex(13)> Drop.fall_velocity(20,

在elixir中共享相同功能的设计模式有哪些?

在elixir中共享相同功能的设计模式有哪些 比如说,, 我有一个应用程序,它“接受”一个结构,将“结构”转换为不同的格式,并将其“推送”到某个存储器中。 我有3个结构通过这个管道,有3个转换规则和3个存储 本项目采用gen_stage包,结构如下: (book) |producer| -> |transformer| -> |indexer| (article)|producer| -> |transformer| -> |indexer| (post) |pr

为什么在Elixir中,这个基本列表运算符比长列表上的运算符花费的时间要长得多?

因此,在elixir 1.3.2中,我创建了两个大列表: a = Enum.to_list(10..1_000_001) b = Enum.to_list(1..1_000_000) 我注意到a++b快速返回结果,但是a--b需要很长时间才能返回结果。为什么会这样?我认为要组合数组,唯一需要做的是为新数组分配内存,然后将两个数组都放入分配的内存中 为了计算两个数组的差,在第一个数组中搜索第二个数组的每个元素(找到第一个数组时,将从第一个数组中删除元素) 加法的复杂度为O(n),减法的复杂度为O

iex-如何从应用程序文件夹外运行elixir项目

我有一些情况, 其中我需要从项目文件外部运行elixir项目。 i、 e.我有一个文件夹code/example app,其中包含该app(以及mix.exs和所有其他内容) 我想从code, 没有cd-ing进入示例应用程序 有办法吗?您可以使用mix\u exs环境变量指定mix.exs文件的位置 MIX_EXS=./code/example-app/mix.exs mix deps.get 您可以阅读更多有关环境变量的信息,这些环境变量会影响中的混合 请注意,如果您试图执行在项目或其依赖

如何设置Elixir属性,以便在Elixir 1.5中使用新的IEx断点?

我正在将Erlang20与Elixir1.5.0一起使用,我尝试了break!在iex中解码查询/2。然后我收到了以下错误: ** (RuntimeError) could not set breakpoint, module URI was not compiled with debug_info (iex) lib/iex.ex:647: IEx.break!/4 我应该使用什么选项编译Erlang,以及如何编译?如果有帮助的话,我一直在使用它来构建和管理我的Erlang安装。大多数版本管

Elixir 在map/2中使用动态值

所以我读了关于这个函数的书,我有一个场景,我必须使用它 查询如下: from p in model, where: p.id == 1, select: map(p, [:id, :inserted_by, customer: [:id, :first_name]]) 因此,不是由插入的id和而是硬编码的id和名字。我想在这样的列表中使用动态值 [:id, :inserted_by, :first_name] select: map(p, [^dynamic_va

Elixir 计算列表中有多少个键

是否有一种惯用的方法来计算键test在此列表中出现的次数 [%{"test" => 1}, %{"test" => 3}, %{"test2" => 1}] 我会定义一个变量并使用Enum.each或for->,但我知道必须有一种方法使它更实用。您可以使用Enum.count/2和Map.has_key?/2: iex(1)> list = [%{"test" => 1}, %{"test" => 3}, %{"test2" => 1}] [%{"te

Elixir 长生不老药插头gzip不适用于PNG

我有 我的jscss和svg文件正在使用content encoding:gzip提供服务,但我的png文件(以同样的方式提供)没有 下面是一个svg示例及其gzip的方式: 这是一个png 您需要将.png添加到文档中提到的gzippable_exts配置中 我们可以选择使用 :gzippable_exts配置文件中的选项: plug Plug.Static, at: "/pros", from: :zipbooks, gzip: true, cache_control_fo

Elixir 如何展平地图列表?

我正在对一个集合进行“映射”,并获取一个映射列表: res1 = Enum.map(my_collection, fn a -> %{a.id => get_some_data(a)} end) # => [%{1 => 123}, %{2 => 456}] 如何将地图列表(res1)展平,以便: %{1 => 123, 2 => 456} 这里最简单的事情是在映射过程中构造关键字列表: coll |>

Elixir 你能给Phoenix Router.Helpers添加自定义路由助手功能吗?

我想为Post模型实现一个自定义路由帮助器函数,它可以链接到线程根,或者在Post是对线程的回复(它们共享Post模型)的情况下链接到具有哈希的线程根 我在哪里可以定义此函数以使其易于从控制器、视图和模板中访问 我已经能够实现PostView中的功能,但现在我想从控制器使用它,而且似乎它适合住在路由器中。帮助者和其他URL帮助者一样 我已经尝试在路由器中实现它,但也没有达到预期效果 def post_path(conn, action, post) do if Post.thread

我们如何解决Elixir中的冲突行为警告

我们如何解决Elixir中的冲突行为警告 warning: conflicting behaviours found. function handle_info/2 is required by Raxx.Server and GenServer 例如,我需要在一个modeule中同时使用GenServer和Raxx.SimpleServer,并定义@回调句柄信息 defmodule TestServer use Raxx.SimpleServer use GenServer def

Elixir Plug中的API版本控制

我有两个模块:lib/endpoints/v1/base.ex和lib/endpoints/v2/base.ex lib/endpoints/v1/base.ex defmodule Http.Endpoints.V1.Base do 需要记录器 使用插头路由器 插头(:匹配) 插头(:调度) 插头(插头记录器) plug(plug.Parsers,解析器:[:json],json_解码器:Poison) 获取“/v1/ping”do 发送响应(conn,200,“砰!”) 结束 结束 lib

Elixir 在Phoenix LiveView中提交后重置表单输入字段

我在Phoenix LiveView中有一个带有phx提交绑定的表单。可通过单击“发送”按钮或按文本字段中的enter键提交表格 我的问题是,如果按enter键提交表单,则输入字段不会被清除,但是如果单击按钮提交表单,则输入字段会被清除 我希望在这两种情况下都清除输入字段 以下是我的表格: <%= f = form_for :chat_form, "#", phx_submit: :send, phx_target: @myself %> <%= tex

Elixir 异位迁移指定排序规则

使用外接程序外接迁移时如何指定列?我正在使用Postgres 我看到了一个使用自定义类型的选项,比如指定:“varchar(120)”,但是:“varchar(120)collate“C”由于必要的引号而不起作用 我知道我可以回退到原始sql,但更愿意利用add

Elixir 如何在LiveView中更新嵌套赋值的值

我正在尝试使用嵌套赋值,但找不到更新其值的方法… 想象一下我有这个: def mount(socket) do socket = assign(socket, state: [value1: "20", value2: "50"]) {:ok, socket} end 如何在此处更新该值 def handle_event("dec", _params, socket) do socket = assign(s

上一页 1 2 ...  83   84   85   86    87   88   89  ... 下一页 最后一页 共 125 页