elixir Enum或任何其他模块是否具有与ruby'类似的group#U by函数;s组由

Ruby有一个很棒的枚举方法。长生不老药有类似的东西吗?我在枚举模块上找不到此功能。谢谢,还没有。我们没有添加它,因为我们正在等待地图。它将被添加到v0.13分支中。:) *更新* 对于没有注意到下面评论的任何人,现在已经添加了它。这里是Enum模块中的一个示例 根据字符串的长度对字符串数组进行分组: iex(12)> ["ant", "buffalo", "cat", "dingo"] |> Enum

如何在Elixir中压缩目录?

我知道如何在Elixir中以写入模式打开zip文件: file=file.open(“myzip.zip”,[:write,:compressed]) 但是在这之后,如果我有一个目录/home/lowks/big_files,我如何将它写入文件?如果你在zip文件上操作,你需要使用:zip.extract('foo.zip'),和:zip.create(名称,[{foo',file1data},file2path,…) :zip.create包含一个名称和一个列表,该列表可以包含以下两个选项之一

通过编程预加载有很多,通过:在Elixir-Exto中

我试图通过编程方式将预加载附加到我的一个模型的查询中,该模型通过:关系具有has\u many 我的模块: defmodule MyApp.Chemical do use MyApp.Web, :model schema "chemicals" do has_many :company_chemicals, MyApp.CompanyChemical has_many :companies, through: [:company_chemicals, :companie

Elixir 将null插入到“EXTO所属对象”字段中

我有一个外胚层模型 defmodule App.Profile do use App.Web, :model alias App.Repo schema "profiles" do belongs_to :user, App.User field :name, :string field :last_name, :string field :second_surname, :str

Elixir 在其他端口上运行iex mix phoenix.server不起作用

这看起来像一个错误,但我不确定。 有人能告诉我在不同的端口号上运行iex是否有效吗。它总是使用端口4000 PORT=4001 iex -S mix phoenix.server Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace] [info] Running AppMessenger.Endpoint with Cowbo

Elixir 如何创建;“摘要”;“长生不老药”模块;虚拟的;功能?

我知道我有点像红宝石,甚至是Java,但我经常遇到这样的情况 我想定义一些通用模块(可以使用元编程),它将使用一些变量/函数,这些变量/函数将在“子”模块中指定(可能使用此通用模块) 我想象它是这样的: defmodule Parent do defmacro __using__(_) do quote do def function do __MODULE__.other_function end end end end 后来:

Elixir 在Phoenix模板中显示JSON数据

我试图简单地在模板中显示一些数据。但很明显我错过了一步 使用HTTPoison请求 use HTTPoison.Base @expected_fields ~w(result) def process_url(url) do "url.json" end def process_response_body(body) do body |> Poison.decode! |> Map.take(@expected_fields) |> Enum.ma

如何更新当前版本的Elixir?

我正在尝试从版本1.3.4升级到v1.4,但是我在安装或入门指南中没有看到关于更新当前安装的任何内容。我知道我可以重新安装Elixir,但升级到更高版本的标准方法是什么?在Windows环境中,最首选的方法是使用巧克力来安装Elixir。巧克力是Windows的软件包管理工具。这样做的好处是,您可以更新到Elixir的最新版本或安装特定版本 以下是Elixir的巧克力页面:对于不使用巧克力的用户:转到,下载windows web安装程序并执行安装程序 在安装过程中,它会询问您是否要替换当前安装的

Elixir 不同模块中同名的模式匹配函数

我想扩展flash消息的类型,但执行以下操作时出现错误: defmodule Backend.AuthView do use Backend.Web, :view def flash(message, :auth_info) do ... end def flash(message, :auth_notice) do ... end end 并将其导入另一个模块: defmodule Backend.LayoutView do use Backend.

Elixir 获取发送中发送的数据的问题\u resp

因此,我试图构建一个带有一些错误处理的插件,如果用户没有经过身份验证,就可以发送响应。这是我的密码: def unauthorized(conn) do respond(conn, response_type(conn), 401, "Unauthorized") end defp response_type(conn) do accept = accept_header(conn) if Regex.match?(~r/json/, accept) do

Elixir 在phoenix的路由中登录负载测试

我正在尝试对需要登录的路由进行负载测试 我以前使用的是注销的路线,效果很好。对于登录的路由,我尝试调用beforeRequest,并使用一个函数设置请求头和请求体 config: 目标:“https://www.mywebsite.com/" 阶段: -持续时间:60 抵达日期:50 处理器:“test.js” 情节: -流量: -职位: url:“/login” 请求前:“setReqBody” 我以前的请求是这样的: 函数setReqBody(请求参数、上下文、ee、下一个){ reque

Elixir 转换待办事项列表并集中任务

我有一个待办事项清单: [ {%{date_value: ~D[2017-01-01], weekday: 7}, %{todo: "a", priority: 1}}, {%{date_value: ~D[2017-01-01], weekday: 7}, %{todo: "b", priority: 2}}, {%{date_value: ~D[2017-01-01], weekday: 7}, %{todo: "c", priority: 3}}, {%{date_valu

创建发布版本后,无法在elixir中运行发布应用程序

我已经使用命令MIX\u ENV=prod MIX release--ENV=prod--verbose创建了构建。它成功地创建了构建,我可以运行控制台和ping命令,并给我pid。即使在我运行start命令时,它也成功启动,但当我转到htttp://localhost:4000,服务器不运行。当我运行\u build/prod/rel/project/bin/project front命令时,它只是挂在那里,没有输出 我使用的是MacOS版本:10.13.2,elixir:1.6.5(使用OT

Elixir Phoenix Exto找不到在其他架构中创建的表

我是新来的长生不老药/凤凰/外星人。我使用exto.migration创建了一个具有4种不同模式的数据库。表的创建是正确的,但是当我尝试查询表时,ecto没有找到它们 ERROR 42P01 (undefined_table): relation "users" does not exist 我知道问题与数据库架构相关,因为当我在默认架构中创建users表时,Exto会发现它没有任何问题。确保迁移文件和架构文件具有相同的表名users。 您可以使用mix-exto.migrations命令检查

Elixir 运行混合测试时打开:dev env正常吗?

我遇到一个问题,我的测试/支持过去没有得到编译: # Specifies which paths to compile per environment. defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] 我决定在运行混合测试时检查环境,令我惊讶的是它的:dev pry(1)> Mix.env() :dev 我是否缺少一些额外的配置 混合文

Elixir 将外部字符串转换为原子

在p。25在“编程凤凰1.4(电子书,beta版)”中,Chris McCord的旁白写道: 在控制器中的世界动作中,外部参数 字符串键,“name”=>name,而在内部我们使用name:name。 这是整个凤凰城的一个惯例。无法使用外部数据 可以安全地转换为原子,因为原子表不是 垃圾收集。相反,我们显式匹配字符串键, 然后,我们的应用程序边界(如控制器和通道)将 将它们转换为原子键,我们将在其他任何地方依赖它 凤凰城里面 引述如下: 外部数据无法安全地转换为原子…因此您需要转换 字符串键到原

如何获取Enum.reduce直到列表获取空的Elixir

我正试图从对讲机获取所有公司的名单。使用每页时,一次给出的值不会超过60。还有另一个端点,如 https://api.intercom.io/companies/scroll,这将获取滚动参数以获取其他公司,依此类推 滚动参数随第一个请求一起提供,然后您可以使用它,直到公司成为[] 我创建了这个方法 defp companies(scroll_param) do url = if scroll_param, do: "#{@intercom_url}/companies/scroll

Elixir Tzdata.EtsHolder以{:错误,:无法创建表}终止

使用此命令启动服务器时: mix phx.server 我收到以下错误消息: pid=<0.2324.0> error_logger=format [error] GenServer Tzdata.EtsHolder terminating ** (MatchError) no match of right hand side value: {:error, :cannot_create_table} (tzdata) lib/tzdata/ets_holder.ex:59

使用Coinbase API(Elixir)生成有效HMAC签名时出现问题 问题陈述:

当使用身份验证时,我收到此响应: 正文:“{\'errors\\”:[{\'id\':\'authentication\'u error\',\'message\':\'invalid signature\'}] 目前的资料来源: (对通用长生不老药风格的反馈也很感谢,这是我在该语言方面的第一个项目) defmodule请求do 解构( 方法:“, 路径:“”, 基:“, 正文:“, 时间戳:零, 关键字:无, 秘密:零, 签名:无 ) 需要HTTPotion 需要毒药 def new(方法、

Elixir 长生不老药:将一个符号转换成一个函数

有没有一种方法可以将符号作为函数调用,这样下面的代码就可以工作了 op = :+ 3 = op(1,2) 使用 {3,}=code.eval_引用{:+,[],[1,2]} #⇒ {3, []} 在更复杂的情况下,您可以使用它来实现该功能。基本上,宏确实接收AST并返回AST以代替宏调用进行注入 defmoduletestdo 反作用宏(o,a1,a2)do {o,[],[a1,a2]} 结束 结束 需要测试 Test.op:+,1,2 #⇒ 3 此外,您还可以使用 apply(内核

Elixir 如何通过EXTO一次插入主要和详细数据

我有主要数据和详细数据。我想同时插入两个 ------- main ------- id name ------- --------- detail --------- id main_id name --------- 我用的是星外的多重交易。 然而,我不知道如何立即插入 main = [name: "zaku"] details = [%{main_id: 1, name: "hoge"}, %{main_id: 1, name: "moja"},] Multi.new(

Elixir变更集自定义验证

我在尝试实现自定义变更集验证时遇到了一些问题。 我的模式是: defenum(VersionStateEnum, ["draft", "active"]) schema "versions" do field :expires_at, :utc_datetime field :state, VersionStateEnum end 我试图实现的验证是:只有当状态为草稿时,才能设置expires\u at(这对于更新也应该有效,

Elixir 如何在Phoenixframework中使用RejectionDB?

刚到Elixir/Phoenix,我想用RejectionDB代替PostgreSQL,但我只找到PostgreSQL上的文档/示例(这似乎是默认/官方数据库)。Hamiltop提供了一个非常好的包(RejectDB elixir),但不幸的是Wiki中的文档还没有准备好,自述文件中的内容对我来说还不够。 我绝对不想使用SQL(我是从使用Meteor/MongoDB开始的,当时数据库不是问题所在)。 谁能给我一个简单的代码示例,我需要: 连接到数据库 启动服务器/管理服务器/连接 创建数据库/表

如何在Elixir中获取当前操作系统名称?

在Ruby中,我会使用Ruby_PLATFORM常量来确定我的程序运行在什么操作系统(Mac、Windows、Linux等)上。长生不老药有办法得到这些信息吗 我目前正试图重新创建一个我用Elixir编写的Ruby程序,我有一个方法,可以通过一个依赖于操作系统的系统调用来打开一个文档。该方法类似于: def self.open_document(filename) case RUBY_PLATFORM when %r(darwin) system('open', filename

如何从Elixir中的嵌套列表中筛选特定值?

如何仅返回订单中的嵌套列表元素:id匹配127?我如何在“订单”列表中搜索它,而不知道它的位置(仅按值搜索) 所需结果:[id:127,配送至:…]您可以用于此目的。它接受一个可枚举的元素(如这里的订单列表)和一个函数,并返回第一个元素,该函数为该元素返回一个真实值(non-false和non-nil) 这只是一种可能的解决办法;有许多可能的方法:)。例如,您还可以将[]语法与Enum.find/2一起使用: Enum.find(orders, fn order -> order[:id]

Elixir 有没有办法将上传的文件反馈给用户?

有没有办法在呈现的页面中显示用户发送的图像? 我读过有关文件上传的文章,但将其发送回用户的唯一方法是使用似乎不适合在网页中呈现图像的文件。我想把文件移到assets/static文件夹,但我觉得这不是它的归属 我来自Django世界,静态文件和上传内容之间存在分离,我想知道凤凰城也有类似的概念 简而言之,如何渲染用户上传的图像?这里有两个选项。您可以在视图中直接创建映像并使用内联数据uri()。这会使您的图像大小增加很多,并且仅适用于较小的图像,因为在这些图像中,到服务器的额外往返成本高于发送大

elixir按关键字获取列表元素

我正在使用Map和List 在地图的情况下,我只希望一些元素,按关键字搜索: my_map = %{key1: "value1", key2: "value2", status: :success} Map.take(my_map, [:key1, :status]) my_list_of_maps = [%{key1: "value1", key2: "value2", status: :success}, %{key1: "value3", key2: "value4", status:

Elixir 在Windows上打开--WERL开关时,将阿拉伯语或希伯来语字符写入IEx命令提示符会间歇性崩溃

我已经为这个问题争论了一段时间了 将阿拉伯语或希伯来语字符写入Windows上的IEx控制台(IEx--werl-S mix)时间歇性崩溃。如果我单击debug并附加到Visual Studio会话,我可以单击continue并使其工作 有没有一个永久性的解决办法 请注意,不使用--WERL开关直接从IEx命令提示符运行相同的代码不会出现错误。这在某种程度上表明,威尔是罪魁祸首 我的设置: Microsoft Windows [Version 10.0.14316] -------------

PhoenixFramework(Elixir)中的参数绑定是如何工作的

因此,我正在编写一个快速的异步用户名验证检查,按照PhoenixFrameworks网站上的教程,我可以这样做: def validateUsername(conn, %{"username" => user}) do IO.inspect(conn) query = from u in User, where: u.username == ^user, select: [u.username] case Repo.all(query) d

Elixir 如何在测试期间运行RealPhoenix服务器?

我正在用我无法模仿的外部库实现一些棘手的功能。他们需要实现对服务器的实际请求。所以 如何在测试实施期间运行web服务器 附:我的config/test.exs: config :my_reelty, MyReelty.Endpoint, http: [port: {:system, "PORT"}], url: [host: "localhost", port: 5000] # Specific port 我正在尝试curlhttp://localhost:5000但是获取curl:

Elixir 长生不老药:防止论点错误

如果我有这样一条管道: "1" |> String.to_integer 如果字符串为空(不是零),我如何防止它 一切都取决于上下文。例如,您可以使用默认值并在私有函数中使用它 defp convert_to_integer(my_string \\ 0) # if 0 is appropriate default value String.to_integer(my_string) end 当然还有一种更好的方法-Integer.parse,如果一切正常,它将返回有效的元组;如果

Elixir 在Phoenix布局或模板文件中加载静态CSS路径

我有一个布局文件,它加载在多个路由上。在布局文件中,我加载CSS: <link rel="stylesheet" type="text/css" href="css/app.css" media="screen" /> 这将正确地从中加载我的文件 但是,这仅在访问我的应用程序“/”的基本路径时有效。例如,如果用户访问/user,那么我将以 如何正确引用模板和布局中的静态CSS路径?要加载相对于站点根目录的CSS文件,只需将/前置到href: <link rel="sty

Elixir 有关伞形应用程序的问题~>;纳米/微型服务、通信

--背景 我正在努力用Elixir替换当前Rails rest API的一些端点。我爱上了雨伞的想法,它包含一个HTTP端点(一个Phoenix应用程序)和一系列小型nano应用程序;可能是一个完全负责与用户数据交互的用户应用程序 ——问题 现在我希望能够独立地扩展这些服务,比如说如果用户服务上有更大的负载。我们在当前的设置中使用Docker,所以理想情况下我会部署更多的用户应用程序容器 这意味着我需要某种形式的交流,我目前使用GenServer创建了一个概念证明,它工作得很好,但似乎围绕着传递

Elixir 如何同时定义多个模块?(宏尝试不工作)

我需要所有的模型来实现特定的协议。我当前尝试的是一个MyApp.Convert模块,定义了此宏: defmodule ConvertMacro do @moduledoc """ All model structs need to implement the convert interface and must be added here. """ defmacro defimpl_convert_for(modules) do Enum.map(modules,

Elixir中是否有任何方法可以对传递给函数的nil参数进行模式匹配?

在作为参数传递给函数的映射中,有没有方法对nil值进行模式匹配 基本上,如果在下面的代码中token是nil,我想进行模式匹配并调用函数2。如果不编写两个不同名称的函数和一个case语句,我似乎无法做到这一点 def my_stuff(%{part: "snippets", possible_nil_token: token}), do: IO.puts "non nil" #function 1 def my_stuff(%{part: "snippets", possible_nil_t

为elixir的测试添加设置

看起来Exunit为设置块提供了回调。我很好奇如何用袋鼠特性测试来完成它。在测试集成测试时,我基本上会在每个场景中创建一个用户。我基本上希望拿出样板代码,并将其用于我编写的每个测试。这是我当前的集成测试设置 test "a user can create a location", %{session: session} do assert session |> visit("/users") |> click_link("Create new

Elixir OTP主管检测到崩溃进程时记录错误

在中,有一行表示: 使用此模块实现的主管具有一组标准接口功能,包括跟踪和错误报告功能 不幸的是,我不知道怎么做。我想要的是某种钩子/通知/事件,当主管检测到一个童工崩溃并正在重新启动时,就会触发这种钩子/通知/事件。主要是,我只想记录一个worker崩溃的事实,这样我就可以向用户显示这个错误,在我的例子中,这需要将错误消息写入数据库中的一个字段 我错过了什么?有没有什么地方可以传递一个函数或模块,当一个孩子被终止时,该函数或模块将被调用?当孩子崩溃时,错误被记录到BEAM中的SASL记录器中,我

Elixir 什么是长生不老药中的=~运算符

从中,我了解了=~操作符如何匹配正则表达式,但我不了解该操作符的一般用法 例如,“foo”=~“foo”是什么意思? 它与“foo”==“foo”有何不同?该页面上没有记录它,但它记录在当RHS是字符串时,=检查LHS是否包含RHS: iex(1)> "foo" =~ "f" true iex(2)> "foo" =~ "o" true 它不会隐式地将RHS转换为正则表达式: iex(3)> "foo" =~ "." false =~根据正则表达式进行验证,==验证精确匹配

Elixir 将文件解析为嵌套字典

我有一个配置文件,我想用以下格式读取 [key_1] inner_key_1 inner_entry_1 inner_key_2 inner_entry_2 inner_key_3 inner_entry_3 inner_key_4 inner_entry_4 [key_2] inner_key_5 inner_entry_5 inner_key_6 inner_entry_6 inner_key_7 inner_entry_7 inner_key_8 inner_entry_8 然后会被映射

Elixir 在eex模板中呈现img:未实现协议Phoenix.HTML.Safe

我有一个正确显示文本的项目显示页面: <p><%= @post.body %></p> <%= @post.title %></h1> 在stories.ex中,我有: |> cast_attachments(attrs, [:project_pic]) 在最新的迁移文件中,它存储为字符串: add :project_pic, :string 也许这就是错误所在 我不确定错误是在我的eex语法中,还是在文件结构中更深的地

Elixir 使用:via with:gproc获取PID

我使用:gproc来命名一些动态启动的GenServer,但我想向这些进程发送消息,我需要PID,如果我不使用:gproc.reg/1,我不确定如何使用gproc获取它们 基本上这是GenServer的一部分 def start_link(name) do IO.inspect(via_tuple(name), label: "NAME") GenServer.start_link(__MODULE__, %{name: name, songs: []},

Elixir:救援/捕获任务超时

我有以下代码: try do IO.inspect("start task") t = Task.async(fn -> Process.sleep(7000) end) IO.inspect("start awaiting") Task.await(t) rescue e -> IO.inspect("catch error") IO.inspect(e) after IO.inspect("after") end IO.inspect("

Elixir 向Phoenix添加CSS文件

我在布局文件夹中添加了一个navbar.html.eex,这个模板是从app.html.eex 在app.css中: @import'navbar.css' 它应该指向我的文件:assets/css/navbar.css 但是文件没有加载,在我的浏览器控制台中我得到:gethttp://localhost:4000/css/navbar.css net::ERR_中止,出现404错误 我来自Rails世界,这就是我过去的习惯,但也许在凤凰城有另一种方式。我在凤凰城找不到一个关于管理css文件的好

Elixir Repo.all失败,因为我有一个自定义主键

我为一个没有id字段的表生成并运行了迁移(使用字段league\u id作为主键)。我确认迁移按预期进行(检查了psql中的数据库,表中确实没有id字段,league\u id是主键) 当我运行Repo.all(League)时,我得到以下错误: 13:01:14.962[debug]查询错误source=“leagues”db=2.8ms 从“联赛”中选择l0.“id”,l0.“联赛id”作为l0[] **(Postgrex.Error)错误42703(未定义的列):列l0.id不存在 有没有

Elixir spawn中的非匿名函数未异步执行

这是我的代码: defmodule Test do def fun() do Process.sleep(10000) IO.puts "sleep over" end def dummy(:b) do spawn(fun()) end def dummy(:a) do spawn(Test,:fun,[]) end def dummy() do spawn(fn -> Process.sl

Elixir 在嵌套在另一个列表中的结构中洗牌列表

使用以下代码: [ %测验{ 问题:意大利单位, 答复:[ %{答案:1900,结果:假}, %{答案:1861,结果:正确}, %{答案:1848,结果:假}, ] }, %测验{ 问题:法兰西河, 答复:[ %{答案:1789,结果:正确}, %{答案:1818,结果:假}, %{答案:1766,结果:假}, ] }, %测验{ 问题:美国的scoperta酒店, 答复:[ %{答案:1280,结果:false}, %{回答:1500,结果:false}, %{答案:1492,结果:正确},

Elixir中的多对多级联删除

我有一个(PostgreSQL)数据库,其中包含表fd\u feed,fd\u tag和连接表fd\u feed\u tags 我已经按照这些长生不老药指南建立了我的数据库:和。以下是我的数据库架构的快照: 如何配置elixir迁移或模式,以便在删除fd_标记的最后一个父项(fd_提要)时,该标记将从数据库中删除?您在外键上设置了_delete::delete_all: add(:fd_feed_id, references(:fd_feed, on_delete: :delete_all))

Phoenix/Elixir/Ecto-唯一_约束不适用于名称选项

我预期会发生什么:当尝试插入一个已存在用户名的角色时,调用Repo.insert返回我详细信息中有错误的变更集 发生了什么:EXTO提出了一个严重的例外 我在我的凤凰城项目中遇到以下错误 ** (exit) an exception was raised: ** (Ecto.ConstraintError) constraint error when attempting to insert struct: * personas_username_index (unique_c

上一页 1 2 ...  69   70   71   72    73   74   75  ... 下一页 最后一页 共 125 页