Elixir 在长生不老药中是否有等同于enhpath的东西?

在Python中,第三方enhpath.py库允许以下内容: In [2]: path("/home/lowks/Documents").listdir() Out[2]: [path('/home/lowks/Documents/5fc72638da7598b350733c5a51fce596.jpeg'), path('/home/lowks/Documents/Prop-API-01.pdf'),] iex(1)> File.ls!("/home/lowks/Documents

如何在Ecto模型(或Elixir结构)上实现setter

我来自Rails思维模式,习惯于在ActiveRecord模型中添加大量setter,以修剪/小写字符串(例如电子邮件地址)或规范化电话号码以使用“-”作为分隔符。我喜欢setter方法,因为它使修改记录的代码保持干燥。这可能与长生不老药/异位剂有关吗?目前,没有任何机制。您最好创建一个函数,如: User.normalize(%User{}, conn.params["user"]) 现在,我们正计划将此代码移动到自定义类型。例如,您实现了一个电子邮件类型,它知道如何正确地强制转换和规范化数

如何在Elixir应用程序中找到工作人员?

通过入门教程的一部分,我正在为底部的监督树问题编写一个单元测试。我尝试启动顶级主管,但失败,出现以下错误: 1) test all buckets die if registry dies (KV.SupervisorTest) test/kv/supervisor_test.exs:4 ** (EXIT from #PID<0.111.0>) shutdown: failed to start child: GenEvent ** (EXI

在elixir单元测试中导入测试代码

我正在编写一些与SSH交互的长生不老药代码的测试。在我的测试中,我想启动一个SSH服务器,我可以对其运行代码。我更喜欢将此代码存储在测试目录中它自己的文件中,并通过各种不同的测试导入它 不过,我一直没能让它工作得太好 我已经尝试创建一个test/ssh\u server.ex文件,其中包含SSHServer模块,但是当我将import SSHServer添加到我的测试中时,我得到: (CompileError)测试/端到端测试。exs:13:未加载模块SSHServer,无法找到 我错过什么了吗

Elixir 为什么值rest包含值“0”;";

我正在阅读Elixir入门文档,遇到了一些我不理解的输出。在下面的例子中,我不明白为什么rest会变成“llo”,或者第一个结果是如何变成“hello”而不是“hehello” iex>“他”rest=“你好” “你好” iex>休息 “llo” 这是长生不老药=工作方式的结果。这不会评估为: "he"; rest = "hello"; 不是,而是进行模式匹配 在本章中,我们将展示Elixir中的=运算符实际上是如何的 匹配运算符以及如何使用它对内部数据进行模式匹配 结构 (我的重点。)第一章

Elixir 片段重用

是否有可能重复使用 在这样的例子中 def unpublished_by_title(title) do from p in Post, where: is_nil(p.published_at) and fragment("downcase(?)", p.title) == ^title end 似乎能够将片段部分提取到一个单独的函数中非常方便,这样就可以在其他地方重用它,例如: def unpublished_by_title(title) do fr

Elixir 部署中出现Phoenix错误:模块连接不可用

我正在开发一个Phoenix应用程序,在生产中遇到了一个调试困难的问题 **(UndefinedFunctionError)未定义的函数:Connection.start\u link/2(模块连接不可用)^M Connection.start_link(Postgrex.Connection,[主机名:“localhost”,超时:5000,otp_应用程序::xxx,repo:xxx.repo,适配器:exto.Adapters.Postgres,用户名:“xxx”,密码:“xxx”,数据库

Elixir 如何从System.cmd输出中捕获每一行?

当从System.cmd或通过其他方法运行命令时,如何捕获控制台中写入的每一行 我甚至希望捕获最终结果,但在控制台中显示的内容类似于:克隆到“myrepo”。。。远程:计数对象:3271,完成。并通过通道发送每行: case System.cmd("git", ["clone", "git@github.com:#{vault}/#{repo}.git"], cd: repo) do {results, 0} -> Myapp.Endpoint.broadcast("app:s

Elixir 无法使用新命令生成phoenix项目

我在那里遇到了麻烦 但我在那里发现的解决方案实际上并不适合我,因为我使用的是ubuntu 15.10 问题是: 我试图通过以下方式创建新的凤凰城项目: mix phoenix.new my_app 命令和捕获跟踪错误: 并且是捕获跟随错误 [error] Process #PID<0.47.0> raised an exception (UndefinedFunctionError) undefined function: :crypto.strong_rand_bytes/1 (

Elixir 如何运行` for<-`在“for<-`在模板中

我正在尝试创建一个组件,该组件构建一个可能具有嵌套子菜单的菜单: Product A Product B ------ Product B1 Product C Product B2 Product B3 在我的组件中,我有以下代码(通过删除部件简化): 我得到了这个错误: ...cannot invoke remote function link_subMenuLinkNumber.subMenu/0 inside match 只有一个循环/

Elixir 应用。在长生不老药壳中停止(…)

我正在使用Plug和Cowboy以及mix用Elixir编写一个简单的应用程序。执行后: $ iex -S mix 应用程序启动。如果我执行 iex(1)> Application.start(:web) {:error, {:already_started, :web}} 我得到了预期的输出。但是,当我尝试使用以下命令停止应用程序时: iex(2)> Application.stop(:web) :ok 我收到了:ok,但随后我收到了很多信息,包括以下内容: iex(3)&g

Elixir 在同一行中别名多个名称

我需要alias同一个文件中的多个模型,在我的文件中按常规操作时会占用大量可见空间: alias Project.Model1 alias Project.Model2 ... alias Project.ModelN 我查看了文档,我认为不可能这样做: alias (Project.Model1, Project.Model2,...,Project.ModelN) alias Project.Model1 alias Project.Model2 ... alias Project.Mo

Elixir dialyxir mix任务创建PLT出口,无错误或创建表

我正在尝试使用dialyxir通过它提供的混合任务对我的项目运行透析器分析 我已经将它添加到我的依赖项中,并按照自述文件进行编译 当我运行mix dialyxir.plt时,它不会报告任何错误,但会在不创建表的情况下退出 $ mix dialyzer.plt Starting PLT Core Build ... this will take awhile dialyzer --build_plt --output_plt /home/vagrant/.dialyxir_core_19_1.3.

Elixir Phoenix应用程序中有多个属于

以下是我目前拥有的三种型号 routine.ex defmodule DailyRoutine.Routine do use DailyRoutine.Web, :model schema "routines" do field :title, :string field :timeframe, :integer field :content, :string belongs_to :user, DailyRoutine.User has_man

Elixir Phoenix Exto.NoResultsError未自动设置404状态

我有以下控制器操作: def edit(conn, %{"id" => id}) do memo = Repo.get_by!(Memo, id: id, user_id: current_user(conn).id) changeset = Memo.changeset(memo) render(conn, "edit.html", memo: memo, changeset: changeset) end 通过以下测试: test "404s for editing wh

Elixir 获取伞形项目中的应用程序名称

我有一个伞形项目(我的应用程序)如下: ├── 自述文件 ├── 应用程序 │ ├── 应用程序1 │ | └── mix.exs │ ├── 附件二 | | └── mix.exs │ └── ... ├── 配置 └── mix.exs 我想获取当前正在运行的应用程序的名称, 例如:app\u one,app\u two 当我使用: Mix.Project.get.Project[:app] 我总是得到主项目名我的应用程序 我该怎么做?您可以使用:app

如何在Phoenix/Elixir Genserver中传递模型

我见过几个Elixir GenServer的示例,但它们主要处理值数组(例如购物车)或计数器增量。因此,它们演示了如何处理简单的数据类型 我想知道在更新某些模型记录时,如何在Phoenix应用程序中传递状态 我可以提供的例子如下: 步骤1:我收到AWS SNS通知(包含新添加的s3对象的数据)=>只需将消息存储到模型通知中 步骤2:我解析通知中的消息以读取s3对象文件名。然后将其存储到新的文档模型 步骤3:我获取s3对象的元数据(例如,原始_名称)并存储它 来自RubyonRails,我会这

Elixir Exto沙箱使用现有进程的签出连接

我有一个带有产品模式的Phoenix测试应用程序。 我有一个由主应用程序主管启动的GenServer,它可以获取带有handle_调用的产品列表 def handle_call(:get_products, _from, _state) products = Repo.all(Product) {:reply, products, products} end 现在我想为这个GenServer编写一个测试 我试着在测试中做类似的事情 setup do pid = Process.wh

Elixir Can';菲尼克斯不会产生移民

我已经开始学习phoenix framework,在尝试创建迁移时遇到了一些问题,下面是我的模式: defmodule Lclp.User do use Ecto.Schema import Ecto.Changeset alias Lclp.User schema "users" do field :email, :string field :name, :string field :password, :string, virtual: true

如何引用Elixir/Erlang中的前一个元素进行枚举

在将Enum.chunk\u by应用于列表之前,我需要规范化元素列表 例如,我们通常在枚举时逐项进行 source_list |> normalize_item 在引用列表中的前一个元素时,如何枚举 此外,我们如何在下一次迭代中保留对上一个规范化_项的引用 样本数据: [ %PhoneBills.Text{end: 91, page: 13, row: 237, start: 48, text: "2348035250601"}, %PhoneBills.Text{end: 155,

Elixir:迭代嵌套映射并在每个级别上插入键值对

假设我有一个函数,它给我一个UUIDv4 def get_uuid() do # do magic end 我有一个嵌套映射,可以是n级深度: map = %{ name: "Alice", friends: [ %{ uid: "EXISTINGUID", name: "Betty" }, %{ name: "Bob", job: "Truck driver" } ] } 如何遍历整个映射,并在

Elixir 无法在ExUnit中断言SyntaxError

以下是我正在测试的代码: defmodule BracketParser do @spec parse_line(binary) :: binary def parse_line(line), do: parse_line_as_list(String.graphemes(line), false, []) defp parse_line_as_list([], true, _acc) do IO.puts("hello") raise S

在Elixir中重新加载配置(使用Mix.Config?)

在我的config.exs文件中,我有 config :my_app, foobar: [%{foo: "bar", keywords: ["hello", "world!"]}, %{foo: "xyz", keywords: ["bloop"]}] 此列表在代码中检索 Application.get_env(:my_app, :foobar) 但是,如果我要更新这个foobar配置,在我重新启动应用程序之前,这些更改不会生效 或者,有没有更好的方法来解决这个问题

当有2个过去的版本时,热升级中断-ditillery elixir phoenix

酿酒厂2.0版 长生不老药1.7.1 OTP 21.0 首先,执行一个普通的发布,并使用混合发布进行部署。它创建了一个内置prod/rel/app_name/releases/1.0.1-08f6b0c 应用程序工作 现在更改一些内容,并再次使用mix-release创建一个发布版本——升级 它在prod/rel/app_name/releases/1.0.1-a4011918中创建了一个新版本 并按要求进行升级 /opt/app-name/bin/app-name upgrade 1.0.

elixir GenStage用户最低需求

genstage有一个项目 生产者A、生产者消费者B和消费者C B一次请求一个事件(最小需求:0,最大需求:1) C向B请求多个事件(最小需求:25,最大需求:50) workers=for idGenStage不会自行缓存数据。因此,您需要做的是将数据缓存到生产者消费者中。谢谢,但这里我只看到生产者中的缓冲,您可以在handle_demand中跟踪事件不足以满足需求的情况。但如何在生产者-消费者中做到这一点,在生产者-消费者中没有handle\u需求,但有handle\u事件? {:produ

Elixir “你好”;搜索、排序、分页;?在凤凰城框架内

我在展示页面中有客户联系人列表。 它是分页的 我想将搜索和排序添加到此列表中。 我一直在调查,但凤凰1.3似乎没有进展。我在mix deps时出错。获取抱怨的requuire phoenix版本 第二种选择是。但我很难理解,很难上路 我认为搜索和排序是大多数人实现的命令功能。 你是怎么做到的?我该怎么做呢?在使用任何更大、更复杂、更混乱的框架进行排序/搜索之前,您可以推出自己的解决方案 搜索 异位提供和治疗。简单的全文解决方案可能如下所示: # In your Customer Controll

Elixir 外行星协会

所以我正在创建一个简单的应用程序,用户可以在其中发布帖子。我还在学长生不老药,所以请耐心点 模型模式 使用者 化身 职位 评论 我的问题是在注释模式中关联用户 用户->拥有一个->化身 用户->有很多->帖子->有很多评论(用户?) 我不知道如何将用户与评论关联,每个模式都允许有多个关联。因此,您将需要与以下内容类似的内容 用户 有一个化身 有很多帖子 有很多评论 化身 属于用户 发布 属于用户 有很多评论 评论 属于用户 属于帖子 我相信这应该涵盖您要查找的内容。每个模式都

Elixir 当源结构的键名与架构的列名不同时创建变更集?

这似乎是一个很容易解决的问题,但很明显,我没有能够正确思考或寻找正确的位置 假设我有一个模式,其中列按惯例以snake_的形式命名,例如branch_id 通常,如果数据来自Phoenix表单,那么数据的键将与模式的键完全对应,这样就可以编写%MyStruct{}|>castattrs、[:branch_id]等 然而,在我的JSON API中,传入的JSON对象将具有camelCase中的键,例如branchId 我是否可以使用exto.Changeset中的任何函数方便地将这些键从传入数据对

“锁定行”;更新「;使用Exto/Elixir的特定表格

我想使用获取一个锁,用于更新表名。与更新的相比,更新的仅锁定指定表中的行,并且连接的行不被阻止。然而,当我尝试使用下面的代码片段使用EXTO时,它失败了 query = Call |> join_other_tables() # custom methods |> Query.lock("FOR UPDATE OF calls") 原因是,Ecto使用别名进行调用,例如,c0,这意味着我还必须在锁表达式中使用别名才能使其工作 query = Call |>

Elixir 如何创建混合任务以生成文件

我如何创建一个定制的混合任务来动态生成代码和文件,就像Phoenix所做的那样。例如,Phoenix有一些生成器,比如mixphx.gen.html,可以在lib下动态添加一组文件。我并不想完成任何复杂的事情,只是想弄清楚如何动态生成代码。例如,我将如何创建一个混合任务,用此代码生成名为user.ex的文件 defmodule用户操作 def功能1(arg),do:arg def功能2(arg),do:arg 结束 foo=你的应用程序名称 foo/lib/foo/mix/tasks/creat

Elixir Phoenix-在POST响应中发送字节

我有一个在内存中生成PDF的应用程序。我需要将PDF文件返回到浏览器。请求类型为POST,但我在使用send_download时遇到问题。目前,我只能通过get请求使其工作 以下是我尝试过的: 在控制器中,如果请求是get(注意pdf是字节(etc))的话,这就起作用了 但是,如果我将请求转换为帖子,这将不起作用。当我这样做时,服务器上不会出现错误 我也尝试过: conn |> put_resp_content_type("application/pdf") |>

Elixir 列表包含另一个顺序相同的列表

检查一个列表是否包含另一个元素顺序相同的列表的“长生不老药”方法是什么? 一些测试来获得这个想法: 断言一些包含函数的函数([1,2,3],[1,2]) 断言某个包含函数的函数([3,1,2],[1,2]) 断言某个包含函数的函数([1,2,3],[2,3]) 驳斥某些_包含_函数([1,3,2],[1,2]) 驳斥某些包含函数的函数([1,2,3],[1,2,4]) 不尊重秩序。中的任何函数也不尊重顺序,我在中找不到任何东西。有趣的问题。我在标准库中也找不到一个好的函数来实现这一点。这似乎是

Elixir 如何将键值对放入具有可变键名的映射中

我试图以一个包含许多不同首选项的地图结束,它应该是这样的: %{some_preference_name:%{foo:"bar"},another_preference_name:%{foo:"bar"}} 我有一个数据库中的偏好映射列表,我需要遍历它们,并将“preference”字段设置为键,将各种值设置为值映射 我试着用Enum.reduce和Enum,map来实现这一点,但我无法获得正确的列表 Enum.map(preferences, fn(data)-> Map.put(

Elixir 在Ecto中按日期时间查询

这是我试过的 date = Ecto.DateTime.from_erl(:calendar.universal_time()) query |> where([record], record.deadline >= ^date) 我也试过了 date = Ecto.DateTime.from_erl(:calendar.universal_time()) query = from m in MyApp.SomeModel, where: m.deadline >

Elixir 存储Phoenix频道的特定于主题的数据

给定一个有多个用户连接到特定主题的频道,比如“房间:大厅”,我希望能够存储与频道相关的信息,我可以在每次收到新消息时检索并可能更新这些信息。从某种意义上说,我希望每个主题都是自己的GenServer一样的东西 据我所知,Phoenix.Socket.assign/3存储每个用户的本地信息,因此不起作用。我仍然不太明白您在问什么,但如果我是您,我会考虑使用来尝试做您正在做的事情。我会发布我正在查看的代理文档部分,但正如我所说,我不确定我是否正确理解了您的问题。我不太清楚@Havvy,但我认为您混淆

Elixir 返回列表会导致(Poison.EncodeError)无法对值进行编码

IO.puts(检查(触点))给出: 当我尝试渲染此视图时,我得到: ** (Poison.EncodeError) unable to encode value: {nil, "contacts"} 您需要为HelloTable实现Poison.Encoder协议。请按中所述联系,或使用以下命令从渲染函数返回贴图: 以上是在中处理JSON的方式。中描述了另一种可能更干净的解决方案,使用更高版本的毒药 将这行代码添加到您的模型中: @derive {Poison.Encoder, only:

Elixir 保存前将空字符串转换为nil

我有以下User模型,希望确保没有人在数据库中存储空字符串(例如空格)。如果有人为名字、姓氏或昵称输入“”(多个空格),则该属性应使用值nil保存。在Rails中,我会在验证之前使用回调来解决这个问题。在凤凰城解决这个问题的最好办法是什么 defmodule MyApp.User do 使用MyApp.Web,:model 模式“用户”做什么 字段:名字,:字符串 字段:姓氏,:字符串 字段:昵称,:字符串 时间戳 结束 @必填_字段~w() @可选_字段~w(名字姓氏昵称) @“医生” 基于'

Elixir 在长生不老药中产生一个过程

我使用两种方法在elixir中生成了一个流程: defmodule Second do def called do raise "oops" end end spawn(Second.called) ** (RuntimeError) oops second.exs:3: Second.called/0 spawn(Second,:called,[]) #PID<0.89.0> iex(2)> 17:42:40.999 [error] Pro

Elixir 用长生不老药渲染辅助对象

我想为我的phoenix模板提供一个辅助方法,用于呈现导航。在我的视图目录中,我添加了以下函数 def render("breadcrumbs.html", %{user: user}) do "<div>nav goes here</div>" end def render(“breadcrumbs.html”,%%{user:user})执行 “导航到这里” 结束 当我调用这个呈现函数时,它显示为一个字符串,而不是呈现的HTML。我应该如何创建一个可以在所

Elixir:将具有相同贴图键的列表合并到一个贴图

如何在elixir中转换此列表 [ %{key1: 1, key2: 2, key3: 3}, %{key1: 4, key2: 5, key3: 6}, %{key1: 7, key2: 8, key3: 9} ] 到这张地图 %{key1: [1, 4, 7], key2: [2, 5, 8], key3: [3, 6, 9]) ?长生不老药还不是很好,但我想到了这个: map = Enum.reduce(list, %{}, fn(inner_map, acc) ->

Elixir(绑定运算符)中重新分配变量时出现意外行为

在Elixir中,“=”运算符是“绑定”运算符。 所以我想知道为什么这段代码会起作用: a = 0 a = a + 1 如果我们检查“a”的值现在是1。 我希望看到绑定错误消息,如: ** (MatchError) no match of right hand side value: 0 重新绑定操作是如何工作的?在Elixir=中是模式匹配操作符。它检查左侧和右侧是否相等。 但是,它也用于绑定和重新绑定变量。在您的示例中,重新绑定仅仅意味着“现在让a存储a+1的先前值”,这与任何其他语言中

Elixir 嵌套关联查询。查询范围

我正在尝试将记录范围限定为属于当前用户的内容。但我没有太大的成功。以下是我正在尝试的: def show(conn, %{"id" => id}) do user_id = Map.get(Statcasters.Guardian.Plug.current_resource(conn), :id) user = Repo.get!(User, user_id) |> Repo.preload(:leagues) league = Repo.get(user.

Elixir 从phoenix视图呈现位字符串

我有一个格式为bitstring=的位字符串。我想渲染,但毒药或Jason似乎没有渲染。以这种方式呈现位字符串的最佳方式是什么 像这样的 bits = <<18::6,8::4,2::5,16::5,18::6,3000::16,0::4>> render(conn, "bits.json", bits: bits) 位= 渲染(conn,“bits.json”,bits:bits) 无法将46位转换为字节数组。另外,这里有两个最自然的选择 可以将数组与值的二进制表示形

Elixir `where`中的值`user\u id``不能转换为查询中的type:id:

我正在尝试一个基于角色的访问控制Pheonix API。用户将在其中登录并创建会话。登录后,他可以创建一个帖子,创建的帖子将分配给该用户id。我遇到了这个问题,用户id像字符串一样出现,而不是其中的值 我尝试了String.to_integeruser_id,但它给出了一个错误,因为user_id像字符串一样出现,而不是存储id的变量 我的路由器 scope "/", PxblogWeb do pipe_through :browser get "/", PageContro

Elixir if块中定义的函数是否在编译时取出?顶级if是否会在编译时运行?

出于安全原因,我有一个功能,我只希望在开发环境中可用。如果我这样做: if Mix.env() == :dev do def some_func() do do_sensitive_stuff() end end 当我编译我的项目时,if块中的代码不会被编译吗?更一般地说,我可以像这样在编译时运行代码吗?或者我需要宏之类的东西 Elixir实际上是Erlang虚拟机之上的DSL。领域非常广泛,但仍然是。《长生不老药》中几乎所有的东西都是宏观的 def,defmo

Elixir 是否全部为原子更新?

其中有一个部分将页面视图增量功能添加到虚拟CMS上下文中。在CMS上下文中创建的函数如下所示: def inc_page_views(%Page{} = page) do {1, [%Page{views: views}]} = from(p in Page, where: p.id == ^page.id, select: [:views]) |> Repo.update_all(inc: [views: 1]) put_in(page.views, views

Elixir 根据值在两个贴图之间选择

我有以下数据集: %{ "away" => %{ "id" => "575ec304-wlk3-239n-3032jdns3944", "points" => 115 }, "home" => %{ "id" => "583ec7cd-fb46-11e1-82cb-f4ce4684ea4c", "points" => 120 } } 我想返回点最多的地图,这样我就可以得到这个 %{ "home" =>

Elixir 我怎么知道凤凰和苦艾酒在产卵和信息发送方面做了什么?

我有一个长生不老药伞应用程序,有凤凰,苦艾酒(graphQL)。在AppWeb中,我的AppWeb.Router路由请求,使用苦艾酒.Plug处理/graphql,并使用MyApp.Schema 在AppWeb.Schema中,我使用import\u类型从不同OTP应用程序中的许多不同模式导入对象。我将以用户为例 Users.Schema有对象和字段,它们最终将resolve&Resolvers.resolve\u x/2 我知道Phoenix在每个请求上都启动了一个新的进程,hexdocsAb

在Elixir中,如何格式化相对于现在的日期时间?

我记得我找到了一个可以让你在1小时内将日期时间转换成字符串的东西,但我的搜索结果是空的。你可能对Timex感兴趣 这是您想要的还具有包括本地化在内的功能 iex> Cldr.DateTime.Relative.to_string(~U[2017-04-29 09:00:00Z], relative_to: ~U[2017-04-29 08:00:00Z]) {:ok, "in 1 hour"} iex> Cldr.DateTime.Rel

Elixir:分布式部落中GenServer的创建和注册以及调用其API之间的延迟

我正在使用Horde0.8.3来管理Elixir应用程序的分布式注册表和管理器。应用程序创建的UserAgent-s(简称UA)被实现为GenServer-s。每个UA代表一个连接到应用程序的用户。UAs是使用Horde.DynamicSupervisor.start_child(MyApi.DSup,{MyApi.UserAgent,user})创建的。在创建UA的同一个函数中,应用程序调用UA客户端API,例如UserAgent.ping(UA\u id)(此API的性质在这里并不重要)pi

上一页 1 2 ...  13   14   15   16    17   18   19  ... 下一页 最后一页 共 125 页