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 来自mochiwebxpath的模式匹配

我试图对运行mochixpath返回的这些值进行模式匹配。模式显然是[elemName,htmlAttrs,children],但我真正需要的是UserNameA和“这是一条消息” 本质上,我使用xpath输出的解析xml来获取用户名和它们发送的消息。我对elixir和模式匹配的概念非常陌生,因此非常感谢您的帮助。输出有问题,因为当我将其复制到控制台时,输出会出现语法错误,所以我假设您有tr,其中包含td、img和其他td 模式匹配可用于以这种方式展开。比方说,您的整个数据都在变量data中,您

如何在elixir项目中设置lager

我想从长生不老药项目使用 我当前的mix.exs如下 def application do [erl_opts: [parse_transform: "lager_transform"]] end defp deps do [{:lager, github: "basho/lager"}] end 我想使用lager将日志输出到文件。 如何设置日志文件路径? (启动应用程序后是否可以更改此文件路径?) 并且,我想使用 如何设置上述配置?这里有一个关于Elixir啤酒的最低设置: #

Elixir 使用Arc和Arc.EXTO将多个图像附加到用户模型

我正在尝试创建一个用于图像上传和下载的API。我使用Arc进行图像上传(本地存储),使用Arc.exto将上传的图像附加到用户模型上。 API允许用户上传多个图像。当我上传不同的图像时,Arc成功地针对用户保存了每个图像 我的问题是,如何上传多个图像并将这些图像引用存储在数据库中。当前,Arc不断替换相同的图像引用 schema "users" do field :name, :string field :age, :integer field :gender, :s

Elixir 如何在一个命令中运行多个混合任务

我有多个mix任务要连续运行。使用其他构建工具,可以使用一条语句运行任务,这可以节省第一个任务之后的启动开销。如何使用Elixir的mix命令完成此操作?用逗号分隔任务列表,并将它们添加到mix do:mix do task1、task2、task3: mix do deps.get, run hello.exs, ecto.migrate 例如,上述任务在一次调用mix中运行deps.get、run hello.exs和exto.migrate,您可以在mix.exs中放置别名并使用它 例如

Elixir 模式匹配以字符串为键的映射

我用字符串“2”创建了一个映射,作为键之一: iex(14)> map = %{:a => 1, "2" => 2, :b => 3} %{:a => 1, :b => 3, "2" => 2} 现在我无法匹配它。例如,如何获取与“2”关联的值?我尝试了以下操作,但出现以下错误: iex(23)> %{a: c, "2" z} = map ** (SyntaxError) iex:23: syntax error before: "2" iex

Elixir 如何在插入时为EXTO模型中的某些字段设置一些值

我在一个EXTO模型中有几个字段,我想为它们插入a)默认值b)在插入时生成值。我该怎么做?在“变更集”中,我应该在哪个函数中执行此操作?是的,通常用于此类操作的地方是变更集函数。如果需要区分插入和更新时发生的情况,可以定义多个变更集函数,并在更新或插入数据时调用相应的函数。例如: defmodule MyApp.Schema do #... def insert_changeset(struct, params) do struct |> common_chang

Elixir Phoenix:如何在通道中存储跨套接字共享的状态?

我有一个两个人聊天的应用程序。但在他们聊天之前,双方都必须按“接受” 在前端,我有一个调用此函数的按钮: function acceptMatch() { channel.push("accept_match", { "matched_client_email": matchedClientEmail, }); } 在我的凤凰频道中,我有以下内容(这是不完整的,因为我不知道该做什么): 实际上,您可能会在user\u socket中的connect中将此特定PID或代理名称传递

Elixir 转换和验证EXTO自定义类型

我正在为颜色编写一个自定义(序列化并解析为CSS颜色) 该行为指定回调应返回:error,除非成功。它不允许返回错误原因,当与变更集一起使用时,将生成通用的“is invalid”错误描述 在无效(不可压缩)输入的变更集中,允许更好的错误消息的最佳方式是什么?我想创建一个用于变更集的validate\u color函数,但如果强制转换失败,该字段将已经存在一般错误。这可能从Ecto v3.0.0开始: 返回{:error,keyword()}时,返回的关键字列表将保留在变更集错误中,类似于cha

Elixir 理解IO.puts与长生不老药

我试图简单地使用Elixir将理解的结果打印到控制台。下面是我试图打印的问题和代码: range = 1..999 multiple_of_3? = fn(n) -> rem(n, 3) == 0 end multiple_of_5? = fn(n) -> rem(n, 5) == 0 end import Integer IO.puts for n <- range, multiple_of_3?.(n), multiple_of_5?.(n), do: n 很简单。唯一

Elixir 摆脱科学记数法

我需要做一些计算,但是我遇到了一个非常低的值的问题,例如,我需要得到0.005的2.7%,最终得到1.350000000000003e-4,这不是我想要的,我只需要知道如何才能得到这些值的准确百分比,我现在正在做的是*2.7/100,它对整数或大于0.05的浮点值非常有效 例如,我需要的是0.005的2.7%,需要显示为0.000135。首先,要理解语言并没有被破坏,只是被破坏了 因此,从某种意义上说,1.350000000000003e-4是准确的,但您这里的问题是Elixir以指数表示法打印

使用Elixir打印十六进制整数

我可以在Erlang中执行此操作: io:fwrite("~.16X~n", [-31,"0x"]). -0x1F ok 但不是长生不老药: :io.fwrite(“.16X~n,[-31,0x]”) **(ArgumentError)参数错误 (stdlib):io.format(#PID,“.16X~n”,[-31,“.0x]”) 为什么不呢?添加@Dogbert的评论作为答案: 尝试使用单引号: :io.fwrite('~.16X~n', [-31, '0x']) 另一个解释:Eli

Elixir GenStage Consumer Supervisor重新启动子项

我在这里读到: ConsumerSupervisor的所有实现仅为每个工作单元启动一个子模块(上面链接中的打印机模块)。如果孩子死了,有没有办法重新启动 对我来说,如果孩子没有正常关机,那么名为“ConsumerSupervisor”的它将能够重新启动孩子。以前有人这样做过吗 在我的实现中,我让consumersupervisor启动一个实际上是GenServer的孩子来执行工作,然后关闭它自己。如果它异常崩溃,我希望它重新启动 思想。。 我曾考虑过实现一个消费者,它向dynamicsuperv

Elixir 为混合任务启动EXTO(Mix.EctoSQL.sure_已开始不再工作)

我知道这个问题已经被问过了,答案总是个人的 然而,我看到了Mix.extosql.confure\u开始时提到了很多,似乎这是一种公认的方法 但是,在exto_sql 3.1.2中,此功能已被完全删除(请参阅)。我不清楚为什么它被移除了 因此,总结一下这个问题:是否有一种可以接受的方法来启动ecto、repo并确保日志后端在不编写太多自定义代码的情况下按预期工作?目前可以接受的方法是 Mix.Task.run("app.start") Mix.extosql。确保\u启动的是一个私有函数,不能

我必须做些什么才能使插头在测试环境中工作(Elixir/Phoenix)?

我有一个基本的应用程序,并试图在我的控制器上使用插头。 如果请求主体没有“url”参数,它基本上应该返回400。 当我从邮递员那里发送请求时,它工作正常,但在我的测试中似乎不起作用 我必须做些什么才能让它在测试环境中工作吗 plug :check_url_existence when action in [:create] def create(conn, link_params) do with {:ok, %Link{} = link} <- Links.create

Elixir 如何在Phoenix中使用2个身份验证插头?

我有两个用户,买家和管理员在我的应用程序中,他们都有不同的登录详细信息,管理员用电子邮件和密码登录,买家用他们的电话号码和我们发送给他们的代码登录。所以,我做了两个认证插头。下面是我如何将这些插件添加到浏览器管道中的: pipeline :browser do plug :accepts, ["html"] plug :fetch_session plug :fetch_flash plug Phoenix.LiveView.Flash plug :protect_from_

Elixir 混合释放“;启动“iex”;显示错误,而;“开始”;不 背景

我正在通过mix-release创建伞形应用程序的发行版。然而,即使我可以手动运行该应用程序,我在启动它时也会出现一些错误 mix-release 我正在尝试运行具有混合版本的应用程序。此命令工作正常,它在\u build/prod/rel/my\u app/bin/my\u app中创建可执行文件。我可以用命令start运行这个可执行文件,一切都运行得很好 但是,如果我没有使用start而是使用start\u iex我首先得到一个错误,然后应用程序正常运行: $ _build/prod/rel

Elixir 有Python的等价物吗';长生不老药中的s dir()

来自Python背景,我非常怀念Python的dir(),它列出了对象或库中的所有方法 Elixir中是否有等效项?如果您在终端上,可以键入:ModuleName.,然后按tab键,它将显示该特定模块中的所有可用函数/宏。不过,图书馆并没有什么明智的做法

Elixir 在长生不老药中的守卫表情需要一些帮助

我试图为我的函数编写一个不接受字符列表的保护表达式,因此我这样做: def myfunction(path)何时是_list(path)do 这里的问题是,is\u list在给定诸如“path”之类的字符列表时也会返回true,我该怎么做?您可以尝试is\u binary。对于字符串,将返回true,对于列表,将以您定义的方式返回false。几乎iex(7)>是列表(“hello”)而不是二进制(“hello”)真iex(8)>是列表(“hello”)而不是二进制(“hello”)假iex(

如何从Elixir中的两项元组列表创建映射

将两项元组列表(如[{1,2},{3,4}]转换为map%{1=>2,3=>4})的优雅方式是什么 关键字列表很简单,但如果我们有任意键呢?我刚刚得到它: list = [{1,2},{3,4}] themap = for e <- list, into: %{}, do: e list=[{1,2},{3,4}] themap=对于e来说,最简单的方法是: Enum.into(list, %{}) Map模块还支持将此类列表作为新功能的参数: iex>Map.new([{1,2},{

Elixir Process.register不适用于Atom

我目前正在尝试创建一个atom,用于连接到Redis的数据库。通常我会使用GenServer的start中的name选项,但该选项不可用。在Getting Started(Elixir 1.0.5)中,该示例似乎显示了Process.register(pid,:kv)作为一个选项。也许有更好的方法让这个过程变得可访问 下面显示了它如何与连接客户端查询中的保护不匹配 iex(2)> redis_client = Exredis.start #PID<0.367.0> iex(3)

Elixir 如果出现编译时警告,是否可以让编译器提前退出,使生成失败?

我发现编译时警告非常有用,但有时我可能会错过它们,特别是在测试在CI服务器上运行的pull请求上 理想情况下,我会在projectmix文件中指定一些东西,使编译器更加严格 我希望这对所有混合任务都有效,并且我不希望必须将标志传递给命令,因为这很容易忘记 例如,对于带有编译器警告的项目,此命令应失败 mix clean && mix compile 这个也应该如此 mix clean && mix test 在某种程度上是可能的。在elixirc命令中有一个标

Elixir Phoenix应用程序的预填充数据库

我想预先填充phoenix项目的数据库。 当应用程序第一次启动时,它应该使用初始数据(如管理员帐户的凭据)将一些数据插入数据库 做这件事的最佳方法是什么?我刚想到使用自定义混合任务。你怎么认为?这是个好主意吗?这是一个相当广泛的问题——定义“最佳”。什么方式最好?投票结束。好吧,也许“最好”在这里不是一个很好的术语。但我不认为用“最好”这个词来结束这个问题。我肯定有人想做类似的事情,目前还没有这样的问题。我想你可以通过混合运行priv/repo/seeds.exs来做到这一点。但我不知道如何在应

Elixir 如何更新模型';来自终端的布尔属性

我在Phoenix应用程序中的用户模型上有一个布尔属性 如何从终端/命令提示符更新此属性 例如,在Rails控制台中(在我的终端中运行Rails c),我可以执行以下操作: u = User.find(1) u.admin = true u.save 在凤凰城最好的方式是什么?(通过iex-S mix也许?-我认为这是最接近rails c)的方法。你是正确的iex-S mix将打开一个控制台 您必须使用一个exto.Changeset结构来进行更改。是进行任意更改的最简单方法: alias

Elixir 当用作依赖项时,我的mix项目未加载config/*宏

几天前,我看到了JoséValim的一篇帖子,并决定将这些模式实施到我自己的项目中 这些是我的config/*.exs。 如您所见(在test.exs和prod.exs中),我定义了两个env变量“http_client”和“user_agent”。这样,当我测试模块时,我使用一个模拟,当模块投入生产时,我使用一个真正的http客户机 问题是:当我尝试在phoenix应用程序中使用wikix作为依赖项时,出于某种原因,mix忽略了我的wikix/config/prod.exs文件,因此从未定义h

Elixir phoenixframework中的外部动态查询参数

我不熟悉长生不老药和凤凰框架。如何将参数动态添加到EXTO查询?例如: def index(conn, _params) do departments = Repo.all(Department) render(conn, "index.json", data: departments) end 是否可以在EXTO查询中使用_参数?比如: Repo.get_by(Department, _params) 当然,您可以动态地获取内容,在第二个参数中,需要Keyword.t | Map.

Elixir 我如何为EXTO模型字段名生成gettext翻译?

我有一个普通的exto.Model,我需要将它的字段注册为翻译,以便将它们移动到.pot文件中。我该怎么做 更新 我使用这些字段名准备翻译错误列表: errors = changeset |> Ecto.Changeset.traverse_errors(fn {msg, opts} -> Enum.reduce(opts, msg, fn {key, value}, _ -> String.replace(msg, "%{#{key}}", to_st

Elixir 模式匹配-确保列表只包含一个结构的值

假设我有一个名为%Product{}的结构。我想将产品列表传递给方法: def serialize(products) do 是否有任何方法可用于此列表的模式匹配或保护子句,以确保此列表仅由%Product{}结构组成?否,这在模式匹配或保护子句中都是不可能的。您必须在函数体中使用类似于Enum.all/2的内容来检查此问题。有点有趣-为什么不可能?您无法对整个列表进行模式匹配,因为这样做效率不高。清单的长度没有限制,甚至要求提供清单的长度都是低效的。模式和保护有一个隐含的要求,即它们是有效的

Elixir 如何用整个字符串中的一个空格替换连续的空格

我有一个字符串,非空格字符之间有2,3个或更多空格 string = "a b c d" 我该怎么做才能做到这一点: output_string == "a b c d" 最简单的方法是使用正则表达式: iex(1)> string = "a b c d" "a b c d" iex(2)> String.replace(string, ~r/ +/, " ") # replace only consecutive space characters "a b c

Elixir 为什么外星&x27;s`cast`是否将整数转换为字符串?

我有一个外部模式,其中包括字段:owned\u by\u id,:string。我将字段声明为字符串,因为我需要支持像“abc123”这样的值以及像“123”这样的值 他们说: 第二个参数是参数的映射,这些参数根据数据中的类型信息进行转换 在我的模块中,我定义了changeset如下: def changeset(struct, params \\ %{}) do cast(struct, params, [:owned_by_id]) end 当我这样做时: MyModule.chang

Elixir Phoenix默认json日期在Chrome/Firefox中解析方式不同

我试图将自动插入的时间戳字段作为json提供服务 问题是Chrome和Firefox在解析发送内容的方式上存在分歧。问题似乎在于,默认情况下,Phoenix提供的服务类似于“2017-01-12T19:49:000”。Firefox和IE会将其解析为UTC,而Chrome会将其转换为本地时间。添加一个Z(“2017-01-12T19:49:000Z”)并给出当地时间 因此,我将代码转换为: def render("message.json", %{message: message}) do

Elixir EXTO中的数据类型-“;值太长,无法更改类型字符(255)";

错误22001(字符串\u数据\u右\u截断):值对于类型太长 字符变化(255) 我理解(并假设)字符串将被限制为一定数量的字符;但是,我不确定哪种类型最适合这种情况 在Phoenix框架中,博客的“内容”部分应该使用什么类型 数据将是文本段落,不能限制大小 提前感谢。您得到的错误来自底层数据库,其中列类型设置为varchar,这是在迁移中将列类型指定为string时默认创建的 要存储超过255个字符的可变长度字符串,需要在迁移中将列类型指定为text。您可以使用迁移将现有列的类型转换为文本,

Phoenix中dev.config中的值的大小写匹配(Elixir)

我正在尝试在Phoenix(Elixir)控制器中进行简单的令牌身份验证。正确令牌的值存储在config/dev.secrets.exs 到目前为止,我已经做到了: 发布https:www.myapp.com/notification?token=123 defmodule Myapp.NotificationController do use Myapp.Web, :controller def create(conn, params) do etoken = endpoin

模块:unicode_util不可用Phoenix/elixir

我正在尝试登录GitHub库。在登录函数中,我得到一个错误 “函数:unicode\u util.lowercase/1未定义(模块:unicode\u util 不可用) 我使用的代码 defmodule Discuss.AuthController do use Discuss.Web, :controller plug Ueberauth def callback(conn, params) do IO.inspect "++++++++++" IO.insp

Elixir:可选概率结构属性

给定一个结构列表,有没有一种方法可以根据预先确定的指标(比如游戏难度)改变概率属性?此概率属性是随机选择房间的概率 我当前的概率属性已经设置好,需要不断更新。现在我想引入一个外部设置来调整这些值,我需要完全重新设计这个概率的设置方式。有关我的当前设置,请参见以下内容: defmodule Sandbox do defstruct description: nil, chance: nil def all, do: [ %Sandbox{ description: "

如何从Elixir API创建GraphQL查询?

我有一个ElixirAPI,可以使用Graphiql向我的数据库发送查询,正如您所看到的,所有crud调用都工作正常 field :users, list_of(:user) do resolve &Graphical.UserResolver.all/2 end 这将返回数据库中的所有用户。显然,如果您使用的是前端,您不想手动键入查询,那么这并不理想。如何实现在模式文件中调用这些字段的函数?我如何写和说这个问题 users{ id, name, e

Elixir交互式外壳输出

我在elixir interactive shell上尝试了上述代码,但得到了意外的输出。我假设第二段代码有问题,敬请告知。在Elixir中,您应该记住有关代码点和内核工作方式的信息 当您检查代码时: iex(5)> Enum.map([{1, 2}, {3, 4}], fn({x, _y}) -> x end) [1, 3] iex(6)> Enum.map([{40, 6}, {50, 12}], fn({x, _y}) -> x end) '(2' iex

在Elixir中使用带有Timex DateTime的guard子句

因此,我可以使用guard子句根据参数的类型运行不同版本的函数: iex(2)> defmodule Test do ...(2)> ...(2)> def double(x) when is_integer(x) do ...(2)> x * 2 ...(2)> end ...(2)> ...(2)> def double(x) when is_binary(x) do ...(2)> String.to_inte

Elixir 修改变更集中的第一条相关记录

有没有办法通过变更集仅更改关系中的第一项?如果我有: 1帐户与N电子邮件 是否可以执行以下操作: schema "accounts" do ... has_many(:emails, StockrtApi.Accounts.Email) end def changeset(account, params) do account ... |> cast_assoc(:emails, required: true, with: &Emai

Elixir 如何将字符串求值为变量

我试图得到一个字符串来计算一个变量。可以对函数执行此操作,但无法使变量正常工作 old_var = "nooook" Atom.to_string(:old) <> "_var" |> Code.eval_string 预期: 努ook 实际: 警告:变量old_var不存在,正在扩展为old_var,请使用括号消除歧义或更改变量名称 编号:1 这对局部变量不起作用,因为它们是如何管理的。显式接受绑定作为第二个参数,因此您可以: Code.eval_string(Atom.

Elixir Ecto中的多对多关联预加载错误

模式是这样的 用户模式 方法模式 这两个模式用户和方法的关联 这些是我的迁移 schema "users_methods" do belongs_to(:users, Bookie.User.Model, type: :binary_id) belongs_to(:methods, Bookie.Method.Model, type: :binary_id) end 这是我的基本设置。现在,当我尝试在查询/插入用户后预加载方法时,它会给我错误信息 create t

Elixir 仅当存在参数时,如何在EXTO中定义联接?

我正在尝试创建一个函数来执行一些动态查询。有一种情况下,我希望添加与另一个表的联接,但只有在opts def list_fields(opts) do query = from f in Field, select: %{ id: f.id, type: f.type, value: f.value } with query <- by_type(opts[:type], query),

Elixir “为什么使用长生不老药?”;在;在for循环中不起作用?

只是好奇为什么我不能在for循环中使用“in”Elixir操作符。例如: #does not work list = [1, 2, 3] for i in list do IO.puts i end 而不是这个 #this works list = [1, 2, 3] for i <- list do IO.puts i end 因为中的运算符具有不同的语义用于检查值是否在范围/列表中。它类似于Enum.member?/2。另一方面,因为操作符中的具有不同的语义用于检查

Elixir 如何验证嵌套映射中的必需项

我在用长生不老药 我收到一些属性,并使用它们创建一个位置。属性类似于: attrs=%{纬度:123.2,经度:123.4,元数据:%{时间戳:“2015-05-05T01:31:54”,准确度:1} 要创建,我使用: location |> cast(attrs, [:latitude, :longitude, :metadata]) |> validate_required([:latitude, :longitude]) 是否有一种方法可以验证metadata.timesta

Elixir 检查所有测试文件是否可编译

我需要检查应用程序测试套件中的所有文件是否可编译 我试图创建一个所有文件的列表,然后编译它们,但结果证明,如果不启动ExUnit,我就无法做到这一点 find apps/*/test -name "*.exs" | xargs elixirc == Compilation error in file apps/api/test/api/request_validators/validator_test.exs == ** (RuntimeError) cannot use ExUnit.Cas

Elixir create/2中没有匹配的函数子句

作为我长生不老药/凤凰学习曲线的一部分,我正在开发一个简单的在线商店。目前我面临的错误是:JordanivaWeb.ProductController.create/2中没有匹配的函数子句。我正在尝试使用Arc一次性上传几个文件,当我提交表单时,我遇到了这个错误。对于如何解决这个问题,如有任何帮助或建议,我将不胜感激 产品架构: schema "products" do field :colour, :string field :description

递归似乎随机复制了一些值——Elixir第14天代码2020的出现

我已经缩小了错误范围(至少我认为是这样),但仍然不知道为什么会发生这种情况。对于数据集: mask = 1XX010X01110X110100000X11101X10X0X11 mem[3513] = 1787222 mem[11652] = 13761 mem[25508] = 235920 mem[49386] = 7440645 mem[51287] = 197564380 mem[9697] = 1812 mem[62638] = 5207143 在应用掩码后,我得到一个由第四个内存项

Elixir 如何枚举一个外星成员灵丹妙药凤凰的索引

我正在寻找如何在html show中获得我的EXTO成员的自定义索引-从资源mix phx.gen.html生成。目标是每个新的post都应该有编号。我曾尝试在PostsController中创建该函数,但我无法解决它 <%= for post <- @posts do %> <%= post.title %> <% end %> 大家好,欢迎来到堆栈溢出:) 我很确定您正在寻找: <%= @posts |> Enum.with_ind

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