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 我可以在函数参数内的Conn中匹配会话值吗?

我有一个会话密钥:标识为用户可能存在也可能不存在的。我想这样,如果你去登录页面,而这个关键存在,服务器重定向到主页你 我可以使用if来解决这个问题,但如果可能的话,与在另一个function子句中使用模式相比,这似乎是个坏主意 def login(conn, %{"username" => username, "password" => password}) do if Plug.Conn.get_session(conn, :identifiedas) do conn

Elixir'中的全包/通配符路线;凤凰城在哪里?

在Phoenix路由器中是否有一条可以作为通配符的路由?啊,著名的口袋妖怪路由: get "/*path" 您将在conn.params[“path”]或作为conn.path\u info啊…花了我一段时间…”“必须全部捕获”@JoseValim对于通配符路由,路径帮助器如何工作?例如,假设您有这样一行:get/*path”、RedirectController、:handle\u redirect您将如何编写redirect\u path(MyApp.Endpoint、:handle\u

正确的Elixir OTP方法来组织重复性任务

我有一个工作流程,大约每30秒醒来一次,轮询数据库以获取更新,对更新采取行动,然后返回睡眠。撇开数据库轮询不可扩展和其他类似问题不谈,使用主管、工作人员、任务等构建此工作流的最佳方式是什么 我将列出我的一些想法和我的赞成/反对意见。请帮我找出最有效的方法。(顺便说一句,我对长生不老药还是很陌生。) 1。无限循环通过函数调用 只需在其中放入一个简单的递归循环,如下所示: def do_work() do # Check database # Do something with result

Elixir 灵丹妙药凤凰集成

你们中有人发现/写过一种使用cloudinary和Elixir的方法吗?我看到的所有集成都基于Cloudinary的插件。但是我还没有看到elixir和erlang的插件 有没有一种方法可以很容易地构建他们发送请求的方法?看看这个 非常简单的库,易于合并到项目中。当你想上传图像时,请调用ExCloudinary.uploadImage(image.path),其中图像是你的Phoenix的多部分。对于任何想要更新一点的人。看来最受欢迎的选择是这个

Elixir 如何将关联传递到EXTO中的变更集?

我有一个非常简单的注释模型: schema "comments" do field :content, :string belongs_to :user, MyApp.User timestamps end 我想要创建一个新记录,并且我想要验证该用户存在的changeset。我该怎么做 我的EXTO版本是1.1.8正确的方法是让数据库处理数据完整性。在应用程序中为此编写检查很容易出现竞争情况。如果在验证和插入注释之间删除了用户,该怎么办?如果删除了带有任何现有注

Elixir 带粗箭头与冒号的映射(毒药-json解码)

到底有什么区别?为什么毒药会被破解!返回格式#2(我需要#1与exto.Changeset.change一起使用) Json响应取自API,看起来像 ab = %{a: 1} ac = %{"a" => 1} 毒药。解码!返回格式#2: 从广义上讲,来自应用程序外部的数据是不可信的。考虑到在长期运行的Erlang系统中,原子分配可能会导致内存耗尽,因此将原子用于外部数据会使您的应用程序面临潜在的拒绝服务(DoS)攻击 这一事实反映在许多Elixir库中,例如流行的JSON解析器。在将外部

Elixir ExUnit-在所有测试之前运行一次DB设置代码

早上好 我的Elixir项目中有一些特别昂贵的数据库设置代码,可以将所需的数据插入数据库 目前,我的测试工作正常,通过@tag:insert_my_data构造,在需要该数据的任何测试之前插入该数据。我的测试助手中有代码,可以执行以下操作: setup tags do if tags[:insert_my_data] do # Run code here end end 问题是我不得不运行这个代码数百次,而且速度很慢 如果代码在调用任何混合测试之前自动运行一次,并且由Ecto提

Elixir 如何使用ecto和guardian建立关联

不知何故,我无法在《卫报》的《凤凰城/星外》中使用此功能: 会议控制器#创建 会合 如何插入与相关用户的会议?调用build\u assoc可正确设置user\u id,但调用changeset可再次删除关联。用户能够成功地进行身份验证。这里缺少什么?请看,changeset不直接包含相关属性,而是通过changeset.data 我们将从changeset.data中提取其他字段,包括用户id 因此,一旦插入,关联将被正确设置 见此,changeset不直接包含相关属性,而是通过changes

如何在Elixir中插入嵌套结构?

我有以下层次结构: BRAND (1) + | v CHANNELS (0, N) + | v POSTS (0, N) 因此,每个品牌都有多个频道,这些频道有多个帖子 问题是我想用给定的频道和品牌名称插入一个帖子 因此,我需要做的是: 创建一个Post 查找或创建频道 将Post与频道关联 查找或创建品牌 将频道与品牌 我的查找或更新功能是: Repo.insert( %Brand{name: "name"}, on_con

Elixir Phoenix变更集错误

我对凤凰的这种行为感到困惑。它是一个包含两个应用程序的总括项目:lib和web。以下是umbrary mix.config: defp deps do [{:phoenix, "~> 1.2.1"}, {:phoenix_pubsub, "~> 1.0"}, {:phoenix_html, "~> 2.6"}, {:phoenix_ecto, "~> 3.0"}, {:gettext, "~> 0.11"}, {:cowboy, "~> 1.0"},

&引用;“做”;Elixir和Haskell符号

我在elixir中使用了“do/end”符号,或多或少类似于命令块分隔符。(换句话说,do类似于{在类C语言中,end类似于}) 这是对正在发生的事情的准确描述吗?还是更像Haskelldo符号,它为单子构造了语法糖,允许类似命令的编码?是和否。do/结束是关键字列表的语法便利 您以前可能写过if表达式。人们可能期望看到的是 if predicate do true_branch else false_branch end 这也可以使用关键字列表编写。以下是完全相同的 if predi

Elixir Phoenix JSON API-配置路由以在控制器中调用正确的函数

我有一个在Phoenix应用程序中创建的注销系统,其中注销按钮位于Phoenix模板中,如下面的三个代码片段所示。这个很好用 凤凰城模板:/web/templates/layout/app.html.eex 我找到了解决方案。我在路由中定义了一个资源,因此Phoenix希望向端点发出删除请求/api/auth:id 在web/router.ex中我更改了 resources”/auth“,AuthController,除了:[:新建,:编辑] 到 delete“auth/logout”,Aut

Elixir 未定义function Credential.changeset/2(模块凭据不可用)

我尝试按照教程进行操作,但当我添加电子邮件作为凭据时,我得到了以下信息: function Credential.changeset/2 is undefined (module Credential is not available) 该教程定义了一个名为Hello.Accounts.Credential的模块,并且为您抛出错误的代码行使用了名称Credential并表示该模块不可用。您(或本教程)很可能忘记在为您抛出此错误的模块中添加别名调用。将以下内容添加到该模块应可解决此问题: ali

如何修改elixir源代码,并在phoenix repo或其他elixir应用程序中使用mix在本地进行测试?

从中,我可以使用类似于$YOUR\u local\u elixir\u PATH/bin/iex-S mix的命令指向elixir的本地git克隆。但是假设我在内核模块中修改内核长度,在计算列表长度之前打印“hello” 当我启动$YOUR_LOCAL_ELIXIR_PATH/bin/iex-S mix并执行长度([1,2])时,不会打印“hello”。这是在我使用elixir自述中发布的类似于bin/elixirc-lib/elixir/lib/kernel.ex的命令在$YOUR\u LOC

获取光标在命令行中的位置(Elixir)

我想知道是否有一种方法可以捕捉光标的绝对位置 在Elixir的命令行中 我知道我必须使用以下ansi转义序列\033[6n, 执行后: echo -en "\033[6n" 打印出我想要的内容,但我不确定如何从Elixir获得命令响应 谢谢!如果您知道系统命令,请使用Elixir执行该命令。我最接近的方法是: ~C(bash -c "echo -en '\033[6n'") |> :os.cmd 但是,它返回的是'\e[6n'而不是光标位置。必须是:os.cmd/1函数中包含转义符号

Elixir中Code.compile_/2的第二个参数

这个长生不老药函数中第二个参数的含义是什么 Code.compile_quoted(quoted, file \\ "nofile") 我试着这样使用它 q = quote do defmodule A do def hello, do: IO.puts "hello from A" end end Code.compile_quoted(q, "Elixir.A.beam") 但是Elixir.A.beam文件没有创建 这主要是编译器构建后台报告环境的内部功能。它与梁无关,

Elixir 从控制器名称获取路径帮助程序

在Routes文档中。我读到我们可以得到这样的路径: iex> import HelloWeb.Router.Helpers iex> alias HelloWeb.Endpoint iex> user_path(Endpoint, :index) "/users" 我们有没有办法像这样从控制器user获取canuser\u路径 user_path 谢谢这不是公共API,将来可能会更改,但是MyApp.Router.\uu路由\uu\u0可用

Elixir 外星运行在哪里

我正在运行这样的查询: query = from q in MY.Model, preload: [:accoc], where: q.accoc_field in [10, 11] Repo.all(query) 这给了我一个错误: ** (Ecto.QueryError) iex:32: field `accoc_field` in `where` does not exist in schema MY.Model in query: 因此,基本上我正在尝试编写一个查询,如: selec

Elixir 自定义混合任务中的ets.lookup_元素(exto.Registry,nil,3)

在lib/mix/tasks/load_mnemonics.ex下创建自定义任务 将CSV文件大容量插入DB表时出现奇怪错误。 执行任务的命令是 混合数据\u监视器。加载\u助记符 defmodule Mix.Tasks.DataMonitor.LoadMnemonics do use Mix.Task alias DataMonitor.Mnemonic alias DataMonitor.Repo require Logger @shortdoc "Loads mn

Elixir 在变更集中的多个字段上应用EXTO validate_长度

埃克托3.2.5,凤凰城1.4.11,长生不老药1.9.4 我有一个外部变更集,看起来像这样。我有许多字段要在所有具有相同最大长度的字段上运行validate\u length my_model |> validate_required(required_fields()) |> validate_length(:field, max: 255) |> validate_length(:another_field, max: 255) # More of the same va

Elixir:在条件中绑定多个变量

在条件中分配变量的情况下: color=“” unit=“” 案例名称do “苹果”-> color=“红色” 单位=“千克” “梨”-> color=“绿色” unit=“每个” _ -> color=“黑色” unit=“每个” 结束 %{名称:名称,颜色:颜色,单位:单位} 在上面的代码中,它需要在前面声明变量。我不认为这是一个好的代码,和想法 答案可以使用if/else表示真/假,也可以使用用例表示多个条件。您可以尝试以下代码: {color, unit} = case name do

忽略Elixir中捕获运算符中匿名函数的参数

我想在Elixir的捕获中创建一个匿名函数,如:fn\u x->“random”end,但如果我这样做: &(“random”)然后我得到一个编译错误: ** (CompileError) invalid args for &, expected an expression in the format of &Mod.fun/arity, &local/arity or a capture containing at least one argument as &

Elixir:从Elixir任务访问ETS时参数错误

我目前正试图在Elixir中构建一个Redis克隆。作为这项工作的一部分,我使用一个任务来处理get/set请求,并使用ETS来存储键和值 ** (ArgumentError) argument error (stdlib 3.13.2) :ets.insert(:kv, {"doomspork", "Sean", ["Elixir", "Ruby", "Java"]}) 以下是我对相关

Elixir 如何在IEx中将ecto查询结果快速编码为JSON?

在IEx中,从查询中编码某个外部结构的简单而快速的方法是什么?我不是在寻找如何在我的应用程序代码中实现@derivate,只是一种快速转储到JSON的方法,可以快速提取一些数据。我发现以下方法对我很有效。需要删除:\uuuu meta\uuuu和任何未加载的关联 Repo.all(Event) |> Enum.map(&(Map.from_struct(&1) |> Map.drop([:__meta__]))) |> Jason.encode!()

Elixir 如何在长生不老药中有效地表示旗帜?

我在Elixir中有一个函数,它可以在一个具有可选标志的状态下结束:ok,blocked,ok,blocked。(在本例中,“_sprowned”是国旗。)未来,州和国旗的数量可能会增加 我的问题是——实现这一点的最佳方式是什么?所以我可以很容易地检查标志/总体状态 我的想法是映射或一些元组,其中第一个元素是基态,第二个是标志的表示,但我不确定什么更好 非常感谢您的任何想法。我只想使用原子和元组: 可能是这样的: {:ok, nil} {:ok, :blocked} {:ok, :spawn

在elixir中将布尔值转换为整数

有没有比求助于更干净的方法来转换true->1和false->0 if boolean_variable do 1 else 0 end 您可以使用以下语法来缩短它,但由于语言中没有显式的三元运算符,因此仍然需要一个if宏 如果是布尔变量,do:1,else:0 资料来源:我不知道这有内置的转换功能。您如何构建自己的解决方案取决于您想要实现的目标。考虑您的实现: def boolean_to_integer(bool) do if bool, do: 1, else: 0 end

Elixir 尝试使用mix安装时,(mix)无法访问url错误

我正在尝试安装elixir软件包,每当我使用mix命令时,我都会收到这样的消息 mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v1.0.0/phoenix_new-1.0.0.ez Are you sure you want to install archive https://github.com/phoenixframework/phoenix/releases/downlo

Elixir 外星生物,如何只获得部分日期?

我开始学习长生不老药-凤凰,来自Rails,我很喜欢它。 我对从EXTO获取的日期有一个问题:我只需要显示自动生成的inserted_at的日期。我还尝试使用Timex和Timex_-Exto插件来实现这一点,但目前运气不佳。您可以根据以下结果进行模式匹配: 如果您想使用timex,一旦您得到erlang datetime格式的结果({{y,m,d},{h,m,s}),您可以使用我通常使用日历依赖项(添加到混合文件),然后 给定数据库中的日期,如date_from_db=“2016-01-08T

Elixir 如何在不引起警告的情况下提供函数的默认实现?

我想提供一个LibraryModule,如下所示: defmodule ClientModule do use LibraryModule end ClientModule.do_something # should work 我希望LibraryModule提供do\u something/0的默认实现,只需在ClientModule中定义即可覆盖该实现。然而,当我现在这样做时,我得到一个编译器警告:“这个子句不能匹配,因为在X行的前一个子句总是匹配的” 好像是GenServer做的,

Elixir 用phoenix的Word格式化一段时间以前的格式

我正试图将我的模板中的时间格式化为“12秒前”或“14分钟前”。Ecto目前发出的超时看起来像是2016-06-28 21:35:21 目前,我只是这样渲染时间: 我知道ruby/rails有一个名为time\u ago\u in\u words()的函数,它完成了我正在寻找的功能。也许这可以通过新的Elixir 1.3日历类型实现?您可以使用Timexhex软件包。具体功能。您需要确保您的日期类型为DateTime。然后简单地使用 Timex.from_now(my_date) #"2 hou

Elixir Phoenix HTML-如何生成嵌套表单

我来自PHP Symfony2框架。假设您有型号用户和地址 schema“用户”做什么 字段:名称,:字符串 有很多:地址、应用程序地址 结束 schema“addresses”do 字段:street,:string 字段:城市,:字符串 ... 属于:用户,应用程序用户 结束 我想为用户创建具有多个子表单的地址表单。我已经读过一篇文章,其中描述了如何编辑和删除集合中的项目。但是动态添加新的并没有什么关系,我的意思是为新的地址生成一个子表单。在Symfony中有一个名为的函数,它是为集合中

Elixir 如何正确地将Plug.Static文件的任意路径重新路由到文件?

我想跳过Phoenix,因为我正计划为React应用程序构建一个演示,该应用程序的状态使用一些API路由。似乎是一个熟悉底层技术的机会 我提出了以下内容,但感觉非常“硬编码”,我很好奇是否有更优雅的解决方案来实现同样的目标 defmodule DemoApp.Plug.ServeStatic do use Plug.Builder @static_opts [at: "/", from: "priv/static"] plug :default_index plug Plug

Elixir 默认值在几个def上发生冲突

论编辑 def request(method \\ :get, path) do end def request(method \\:get, path, params) do end 我不明白为什么我不能有两个参数模式匹配def。当出现请求(“post”,“test”)时,会出现成像情况。post是方法名还是路径名,与test是同一个故事-是路径还是参数? 我想对您来说,最好的解决方案是简单地使用带有三个参数的request方法,并使用params作为可选参数 def re

Elixir GenServer.start_链接引发异常,而不是返回元组

我在玩一点,实现自定义init回调时遇到问题 请考虑以下代码: defmodule GenS do use GenServer def start_link(initial \\ 0) do GenServer.start_link(__MODULE__, initial) end def init(initial) do case initial do 3 -> {:stop, "Can't initialise with 3"}

Elixir 如何在exactor中通过tuple reg实现动态?

我正在为每个用户启动genserver,使用他们的ID作为名称 def start_link(id) do GenServer.start_link(__MODULE__, id, name: via_tuple(id)) end defp via_tuple(id) do {:via, :gproc, {:n, :l, {:id, id}}} end Api看起来像: def state(id) do GenServer.call(via_tuple(id),

Elixir 凤凰服务器赢得';t启动--Postgrex失败(退出)无进程

尝试通过mix phoenix.server启动时,会报告以下错误,直到服务器被终止: ** (stop) exited in: GenServer.call(Postgrex.TypeServer, {:fetch, {'localhost', 5432, "database_name", :copy, [{Ecto.Adapters.Postgres.DateTime, []}, {Postgrex.Extensions.JSON, [library: nil]}]}}, 60000

有没有办法匹配elixir字符串中的前n个字符

如何匹配字符串的前n个字符?比如: def take(n) do head :: size(n) <> rest = "my string" end def take(n)do head::size(n)rest=“我的字符串” 结束 您可以使用模式匹配获得第一个n字节: iex(1)> n = 4 4 iex(2)> <<head :: binary-size(n)>> <> rest = "my string" "my str

Elixir 无法再将exto.DateTime.to_erl转换为

我的目标是找出以分钟为单位的时差: {_, {_, aaa, _}} = Ecto.DateTime.to_erl(d1) |> :calendar.time_difference(:calendar.universal_time) 我有一个从Postgresql检索到的时间戳: iex(13)> d1 ~N[2017-02-09 07:23:04.000000] 以前,这种方法效果很好: d11 = Ecto.DateTime.to_erl(d1) 但现在它抛出了一个异常:

Elixir:如何在脚本中使用flush()函数?

文档给出了在iex中使用的示例,它在那里工作: 虽然它在脚本内部不起作用: $ elixir e.exs ** (CompileError) e.exs:6: undefined function flush/0 (elixir) lib/code.ex:363: Code.require_file/2 我发现这个函数是一些IEx.Helpers的一部分 但是,在脚本开头使用IEx的助手或使用IEx不会生效。您不想使用使用关键字。您需要别名或导入 它们都是相关的,但略有不同 im

Elixir 选择可能属于值的字段

我有类别和产品,它们属于这个类别。设置: mix phoenix.new shop cd shop mix ecto.create mix phoenix.gen.html Category categories name mix phoenix.gen.html Product products name category_id:integer mix ecto.migrate web/router.ex [...] scope "/", Shop do pipe_through :br

Elixir:如何计算浮点精度>;15?

我需要能够计算比Float类型允许的小数位数更多的小数位数:15 iex(19)> Float.round(1/7, 15) 0.142857142857143 iex(20)> Float.round(1/7, 16) ** (FunctionClauseError) no function clause matching in Float.round/2 (elixir) lib/float.ex:163: Float.round(0.14285714285714285,

Elixir 在Phoenix中修改结构列表

我有一个后端显示了一个帖子列表的博客。每个帖子都有一个publish_on值,该值是datetime-如果当前时间晚于publish_on,则帖子处于活动状态。帖子有一个名为active的布尔虚拟字段 当我在Repo中查询帖子列表时,我想浏览一下列表,如果当前时间是在publish_on之后,则将Post's active设置为true 最灵丹妙药的方法是什么?还有,长生不老药社区的Pythonic版本是什么 models/post.ex 控制器/post_controller.ex templ

Elixir 如何使用EXTO获取原始sql返回的DB值

我做了一个复杂的SQL。所以我使用原始查询。 我已经提到了https://stackoverflow.com/questions/36042888/raw-sql-with-ecto 但我还是堆积起来了 query = "select item_id, sum(unit) amount from sales where item_id = ? " result = Ecto.Adapters.SQL.query(Repo, query, [item_id]) 然而,我不知道如何检索DB值,就像

是否可以在Elixir中的模块外调用私有函数?

我想在模块外调用私有函数。在Ruby中,我可以通过#send方法来实现,但在我看来,Elixir的应用不适用于私有函数 apply(ExAws.S3, :url_to_sign, ["bucket", "file.jpg", ExAws.Config.new(:s3), true]) ** (UndefinedFunctionError) function ExAws.S3.url_to_sign/4 is undefined or private 我知道调用私有函数/方法不是一个好方法,但无

Elixir Map.fetch(key,value)和Map.fetch有什么区别!(关键、价值)

两者略有不同,但没有讨论什么不同 文档中确实提到了第一个是“由编译器内联的”,后面一个是引发的异常 是否有一个经验法则,我应该在什么时候使用一个而不是另一个,反之亦然 关于差异是返回值: iex(1)> map = %{foo: 42} %{foo: 42} iex(2)> Map.fetch(map, :foo) {:ok, 42} iex(3)> Map.fetch(map, :bar) :error iex(4)> Map.fetch!(map, :foo) 42

Elixir 比较EXTO中的静态时间

我需要做一个复杂的查询,以了解商店是否在一天中的某个特定时间营业。这是一个局部查询 current_time = %Time{(time_now |> DateTime.to_time()) | microsecond: {0, 0}} current_time_string = time_now |> DateTime.to_time() |> Time.to_string() MyApp.StoreSchedule |> where( [rs],

Elixir 不同架构上的EXTO约束错误

我很确定我错过了一些东西,但我正在为此烦恼。我有以下架构的设置: schema "accounts_providers" do field :provider, :string, null: false field :uid, :string, null: false field :auth_token, Persistence.Encrypted.Binary, null: false belongs_to :user, MyApp.Accounts.User times

Elixir 向对象添加虚拟字段

我有一个计算每个链接点击次数的函数。问题在于最终的数据结构,其形式为{Link,10}。我真正想做的是把它放在总数中,这样我可以在视图中更容易地访问它,比如链接。单击\u count。可能吗?使用: 因此,在您的代码中: {Link, 10} |> elem(1) #⇒ 10 您的EXTO模式中是否有用于链接的虚拟字段?如果没有,您将要添加它: query |> Repo.all() |> how_do_you_get_tuple() |> elem(1) 然后,您

Elixir 透析器不知道:httpc

我正在开发Elixir,使用Erlang内置的:httpc函数执行get请求 if{:ok,{status,header,body}}=:httpc.request(:get,{img,[]},[],[],[])do # ... 结束 这些功能运行良好。运行混血透析器后,返回错误: :0:未知的函数 功能:httpc.request/4不存在。 ___________________________________________________________________________

Elixir 什么是“;获取或插入”;?

我有一些代码,通过在ETS中查找用户,或者创建一个结构,将该值存储在ETS中并返回新创建的用户,来计算用户 user = if user = Data.lookup(phone) do user else user = %User{phone: phone} Data.insert({phone, user}) user end 然而,在我看来,它不是最好的代码,我也不知道如何重构它。在长生不老药中,什么是一种惯用的方法呢?我肯定会使用模式匹配: def get_user(p

上一页 1 2 ...  8   9   10   11    12   13   14  ... 下一页 最后一页 共 125 页