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 如何在Phoenix框架中创建全局视图?

如果我想创建一个模块,其中的功能可以在每个模板中访问,并且可以使用视图的所有功能(创建标签、使用路由器路径等),那么实现这一点的最佳方法是什么 简单地说,如何创建全局视图?您可以定义一个模块(我将其放在helpers目录中),其中包含您的函数: defmodule MyApp.SomeHelper do def some_function do #... end end 然后,您可以将其包含在MyApp.Web的视图功能下: def view do quote

Elixir 凤凰城管制员vs频道

我开始在中创建web应用程序。我已经看过了一些教程,并从中创建了聊天示例。当我们生成exto模型时,它们使用controller生成CRUD网页,这是为了简单的目的,而不是为了实时更新。我有点困惑什么时候使用控制器,什么时候使用频道,是不是只有在需要实时更新的时候 还有一种方法可以将这两种方法一起用于特定的表单/网页,其中某些任务在控制器上完成,某些任务在通道中完成。请澄清。频道用于实时通信。控制器用于正常的HTTP请求-响应通信 控制器通常基于数据库资源,因此通常会为您生成CRUD操作。但是实

Elixir 如何将Phoenix与Exto使用不同的db驱动程序?例如OrientDB

我正试图思考如何使用Phoenix,使用不同的DB驱动程序,而不使用Ecto,因为我想连接到OrientDB。有一个名为MarcoPolo的二进制驱动程序,奇怪的是,我能够使用poolboy创建一个工作池来连接它,但不仅仅是一个简单的连接。我对长生不老药还是很陌生 这就是我所做的: 在mix.exs中定义依赖项 defp deps do [{:phoenix, "~> 1.0.3"}, {:phoenix_html, "~> 2.1"}, {:phoe

Elixir Exto仅在创建时添加计算值

在创建/插入时添加计算值的最佳做法是什么?我应该为创建和更新创建一个唯一的变更集吗 比如说,我有一个博客文章模型,我想创建一个title slug值并存储它。这有点做作,但出于某种原因,我只想将其设置为create而不是update。我应该做如下的事情吗 defmodule MyBlog.Post do 使用MyBlog.Web,:model 模式“posts”做什么 字段:标题,:字符串 字段:title\u slug,:字符串 字段:内容,:文本 时间戳 结束 @必填字段~w( 标题 内容

Elixir 基于列/值列表为结构赋值

我想按顺序获取包含列和值的列表,并将其转换为struct。我目前正在对值进行模式匹配,但随着列表的不断增长,我的代码变得越来越大。这里有一些代码 @find_account_query ~s{ SELECT username, -- 1 name, -- 2 surname, -- 3 account.active, -- 4 CASE WHEN person_id IS NOT NULL THEN TRUE ELSE FALSE

elixir plug:从post请求获取表单数据的正确方法

我正在玩并试图阅读路由器中一个简单post请求的正文: 形式 <form action="/create_item" method="post"> <input type="text" value="whatever" name="name"> <input type="number" value="99" name="age"> <input type="submit"> </form> 如果我提交表单,这将把name=

Elixir 由子进程访问的单个应用程序范围的进程

我正在编写一个Elixir应用程序,其中一些访问数据库的进程将为插入的记录生成唯一标识符 我正在使用,它将以以下方式生成id: {:ok, pid} = Cuid.start_link Cuid.generate(pid) # => ch72gsb320000udocl363eofy 下面是我的应用程序的设置方式 有一个phoenix控制器处理请求 此控制器调用当前同步的自定义Repo.insert命令 Repo.insert每次调用Cuid.start\u link和Cuid.ge

Elixir Phoenix选择窗体控件无效

我正在尝试编辑表“users”中的locale\u id字段。 表“locales”只包含id、代码(如“en”或“ua”)、名称和默认时间戳 这是我的*.eex表格代码: <%= form_for @changeset, user_path(@conn, :update, @current_user), [multipart: true], fn f -> %> ... <div class="form-group"> <label>Langu

Elixir 长生不老药;EXTO:视图中的子查询或侧面加载和规范化json输出

我最近开始将现有的PHP messenger应用程序移植到elixir(使用elixir 1.3、phoenix 1.2、Exto 2.0.1和mariaex 0.7.7)。该应用服务于数百万用户,因此性能非常重要。我对长生不老药很陌生,所以请原谅我这个问题的愚蠢 我有以下数据库架构: 每个线程都有多个线程参与者和消息。thread_参与者在链接线程的上下文中拥有关于用户的信息(例如,当用户最后一次看到此线程时)。线程由用户编写的多条消息组成 我希望json my API最终返回的是: "da

如何在Elixir Exto中为列命名?

所以我有一个遗留数据库模式,我正试图在Elixir(Phoenix)和Ecto的帮助下对其进行规范化。列定义工作正常,但它们是可怕的名称(技术债务万岁) 在通过生成的api显示和管理列名时,是否有办法将列名别名,即“meetingName”变为“meeting_name”?我已经看过了外星生物的文档,但似乎根本找不到它 例如 @primary_key {:meetingId, :integer, []} @derive {Phoenix.Param, key: :meetingId} schem

Elixir 长生不老药列表语法错误

我正在与长生不老药列表、元组、关键字列表等斗争。这个列表有什么问题 这很有效 iex> [1, one: "one"] #=> [1, {:one, "one"}] 但事实并非如此 iex> [one: "one", 1] #=> Syntax error before 1 这就是长生不老药语法的用法:identifier:expr语法(大致对应于前面链接的解析器中的kw规则)仅在列表文字的末尾被接受。长生不老药语法的用法是:identifier:expr语法(大致对

Elixir 如何返回长生不老药列表?

我正在编写长生不老药书和练习。我有一个sum函数,我想返回列表中的sum值,而不仅仅是一个数字,但在算术表达式中得到的参数是错误的。需要一些指示吗 defmodule Mymod do def sum([]), do: [] def sum([head | tail]) do [head + sum(tail)] end end 问题是Mymod.sum/1返回一个列表,您试图将其添加到数字中 要使其正常工作,您应该将sum返回的列表“公开”到数字中,然后添加它: def

Elixir 长生不老药管理者如何阻止儿童停止?

我有一个具有的主管:简单的一对一重启策略,当我呼叫主管时,孩子们会发生什么情况。停止(sup) 从测试中我看到,无论他们在做什么,他们都在死亡。有没有标准的方法让他们优雅地关机,这样他们就可以完成工作(如果有的话)?类似于调用GenServer.stop在他们身上…伊万。我想你想把出口限制在你的工人身上。如果你不诱捕他们,他们就会被杀死。以下是我的意思的说明: defmodule SupervisorStop do use Application def start(_type, _a

Elixir 使用datetime时--警告,改用utc_datetime时--异常

生成“datetime”类型的列时,我收到一条警告 但是,当我替换为“utc_datetime”类型时,我得到一个异常: 虽然像警告所说的那样,Ecto已经弃用了:datetime,但Phoenix发电机之前的最新版本Phoenix 1.2.1。因此,在Phoenix发布1.2.2或1.3.0之前,您必须在生成器中使用datetime,并手动更改生成的迁移和模式中的类型,或者直接使用git回购主分支未发布的Phoenix版本。大约什么时候发布?很遗憾,我找不到任何相关信息。从上次发布到现在已经有

Elixir %HTTPoison.Error{id:nil,reason::closed}

我们在使用hackney池时,在post和get请求的代码库中使用HTTPoison。在这里发帖只是因为我想从所有专家那里得到一些意见 我们使用了很多摄像机,从每台摄像机中,我们得到图像,然后所有这些图像,我们将它们保存到服务器上 我们在每秒范围内提出了近千个请求。在seaveedfs方面,我们启动了服务器,超时时间为10秒。在我们的代码库端,为了上传图像,我们使用这个hackney配置 :hackney_pool.child_spec(:seaweedfs_upload_pool, [ti

Elixir mix EXTO.create连接被拒绝

我在尝试运行mix EXTO.create时收到此错误: 13:27:47.442[错误]GenServer#PID终止 **(DBConnection.ConnectionError)tcp连接(本地主机:5432):连接被拒绝-:ECONREFUSSED (db_connection)lib/db_connection/connection.ex:148:DBConnection.connection.connect/2 (connection)lib/connection.ex:622:c

Elixir 添加puts函数时cond失败

我有一个函数,它的Enum.reduce尝试更新映射。现在我不确定您是否可以这样做,但是当行IO.put(“TEST”)打开时,代码在打印TEST后的下一次迭代中失败。如果我删除那一行,代码就可以工作了 def to_table({team, matches}, table) do Enum.reduce matches, table, fn({vteam, result}, table) -> %{f: lo, a: vi} = result con

Elixir 如何在关联中删除文件时从硬盘中删除文件

我正在创建一个小网站,将图片上传到相册。对于这两个,我都有模型。为了便于阅读,我只需将应用程序命名为网站。我的问题是,我想在删除相册时(以及删除用户时)从硬盘中删除文件 当图片被直接删除时,我通过调用图片控制器中ImageUploader的delete函数来删除文件 defmodule Website.PictureController do ... def delete(...) do # get picture and check that current user is t

Elixir 如何在更新中调用函数

我试图创建一个迁移,通过对列中的每个项目调用函数date\u str\u to\u timestamp(在同一文件中定义),将列中的数据转换为不同的格式 from(p in "posts", update: [set: [ timestamp: ^date_str_to_timestamp(p.time) ]]) |> Pesterbot.Repo.update_all([]) 但我得到的是: _build/dev/lib/pesterbot/priv/repo/migrat

Elixir 如何使GenServer进程可用于我的整个应用程序?

我正在使用GenServer作为排队系统。如何使整个应用程序都可以访问相同的过程 我想把它放在application.ex中就可以了,就像这样: children = [ supervisor(Prefect, [], name: PrefectQueue) ] MyPerfect模块是GenServer: defmodule Prefect do use GenServer alias Prefect.Document # client def start_link()

Elixir 使用Kernel.apply调用私有方法

我试图在模块中动态调用私有方法 apply能够调用公共方法,但在尝试调用私有方法时,即使是在模块的上下文中,也会出现未定义的错误。有没有一种方法可以使方法私有但仍然动态调用 例子 结果 Kernel.apply(Test,:worldp,[])就像Test.worldp()一样 不能在模块外调用私有函数 您可以尝试以下方法: defmodule Test do def hello() do IO.puts("hello") Kernel.apply(&worldp/0

Elixir 长生不老药-凤凰-外星术语

是模式表\u名称吗。。。结束函数,它是否也是字段:title,:string函数?或者这整件事叫什么 use MyApp, :model // import Ecto module to use its chema // is schema is a custom type or sth or function, how to call it? schema "documents" do // and this line also field :title, :string ti

&引用;“规格的算术错误”;在对Elixir规范定义使用guard子句时看到

下面是我试图添加规范的代码 @spec failure(term) :: error(term) @spec failure(reason) :: error(reason) when reason: term defmacro failure(reason) do quote do {:error, unquote(reason)} end end 第一个等级库定义工作正常。 然而,我想让它更清楚,如果原因是一个整数,那么返回的错误也将包含一个整数。 第二个规范不起作用。错误

Elixir 生成日期列表

假设我使用Timex,如下所示: use Timex Interval.new(from: ~D[2016-03-03], until: [days: 3]) %Elixir.Timex.Interval{from: ~N[2016-03-03 00:00:00], left_open: false, right_open: true, step: [days: 1], until: ~N[2016-03-06 00:00:00]} 我想生成一个日期列表,间隔一天。如何从这一点进入列表?为什么

Elixir-在Phoenix控制器中的其他操作中触发插头

我正在使用PolicyWonk进行授权,我创建了此策略: def policy( %{current_user: current_user, organisation: organisation} = _assigns, :organisation_view ) when not is_nil(current_user) and not is_nil(organisation) do case current_user.organisation_id == org

在elixir中向列表添加数据

我有一个函数,它看起来像: def func()do 列表_z=[123] ... 我想把下一个数据添加到这个列表中,比如list_z=[123,“abc”,190] 我尝试使用列表。在处插入_,附加运算符,如,++,Enum.join。。。但所有这些都只是对该实例的附加,下一次迭代的变量返回到list_z=[123]。我知道它是不可变的,但是我们还有其他方法可以尝试类似的东西吗 编辑2: 我所做的 def append_l(a,b)do a=[b | a] 反向枚举(a) A. 结束 def

Elixir/Phoenix框架如何删除css

我想删除所有标准样式,然后添加我自己的样式。我删除了文件夹assets/css中的所有文件,然后重新启动服务器-以前的样式仍然保留。然后,我还从priv/static/css文件夹中删除了这些样式,然后重新启动了服务器——以前的样式仍然存在。请告诉我,我做错了什么,以及如何正确添加/删除CSS?我通过将必要的CSS导入到assets/js/app.js解决了这个问题 import "../css/test.css" 我不知道这个解决方案有多正确,但它是有效的。这是正确的。当您刚刚删除文件时,您

Elixir Phoenix框架-节点模块安装

有一个关于使用NodeJS(npm)安装模块的问题。例如,我使用npm安装particlesJS npm i particlesjs 安装已成功完成 我在app.js文件中导入particlesJS import particlesjs from "particlesjs" 但在控制台中,我看到一个错误 没有定义particlesJS 我仍然不擅长与npm和phoenix合作,我真的很想弄清楚如何正确连接模块 附言 为了使用jQuery,我将这些行添加到app.js中 import $ fro

elixir将标题字符串转换为映射

我有以下字符串,它是来自WWW的值,通过http请求进行身份验证: "Digest realm=\"Web Service Realm via Digest Authentication\", qop=\"auth\", nonce=\"MTU3MjchuUVEIHEUnVNV==\"" 我需要将其转换为一个映射,以便可以轻松地引用realm和nonce的值。我有一些非常脆弱的工作代码,例如提取领域: headers |> String.split(",") |&

Elixir 方括号语法在长生不老药记录中的应用

我正在学习Elixir编程,并且我正在学习记录括号语法 以下是示例: defrecord FileInfo, atime: nil, accesses: 0 defmodule FileAccess do def was_accessed?(FileInfo[accesses: 0]), do: false def was_accessed?(FileInfo[]), do: true end P>作者认为,在编译时,ILIXIR将记录扩展为元组。所以 def

Elixir 安装phoenix framework时出错

第一次尝试凤凰和长生不老药。在项目运行的最后阶段被卡住了 mix phoenix.server 有人有同样的问题吗?这是错误跟踪。(postgrex作为依赖项添加) **(混合)无法启动应用程序日志:blog.start(:normal,[])返回错误:shutdown:无法启动子项:blog.Repo **(退出)关机:无法启动子项:exto.Adapters.Postgres **(退出)引发了一个异常: **(RuntimeError)找不到exto.Adapters.Postgres.

Elixir 变更集中的参数错误

我正在学习《编写Phoenix程序》一书中的Phoenix框架,遇到了一个我似乎无法理解的错误。基本上,这本书目前正在添加一个用于创建新用户的表单。因此,当我将浏览器指向http://localhost:4000/users/new我看到以下页面(请展开图像): 在命令行输出中,服务器显示: [info] GET /users/new [debug] Processing by Rumbl.UserController.new/2 Parameters: %{} Pipelines:

Elixir 来自ltree的外胚层关联

我有一个主题模型,它形成了一个层次结构,带有一个父id键。我希望能够在不进行递归选择的情况下快速访问路径,因此有一个额外的层次结构字段使用Postgres ltrees ltree部分工作正常,在数据库中看起来像这样:1.2.5,其中每个数字都是祖先主题的id 问题是如何加载一个主题,并预加载其祖先主题? 一条有希望的路线似乎是,但我无法让它发挥作用。在控制器中,我有: query = from t in App.Topic, where: fragment("hierarchy @>

Elixir 代码。是否已加载?in.iex.exs

我的elixir控制台配置存储在.iex.exs中: if Code.ensure_loaded?(MyApp.Repo) do alias MyApp.Repo end 我希望能够同时运行iex和iex-S mix。如果我在iex上删除条件,则会出现异常 但是这种情况不太好用!即使在iex-S mix上我也有(模块Repo不可用)错误,如果我试图调用Repo.get(…)。因此,我的问题是: 为什么代码。确保\u已加载?在这里不起作用 我怎样才能解决这个问题 这是一个范围界定的问题。在块

Elixir 在混合任务中使用竹子发送电子邮件

我想发送一封来自混合任务的电子邮件。以下是任务的代码: defmodule Mix.Tasks.sendmails.rementer do 使用Mix.Task 进口混合 导入外部查询 def运行(_参数)do Foobar.welcome|u email |>MyApp.Mailer.deliver|u立即发送 结束 结束 德福巴多模块 进口竹子。电邮 欢迎你发电子邮件 新邮件 |>到(”foo@example.com") |>从(”me@example.com") |>主题(“欢迎!!!”)

Elixir Timex-在迁移中使用datetime

我有以下模块: defmodule SoundButtonsApi.Accounts.Session do use Ecto.Schema use Timex import Ecto.Changeset schema "accounts_sessions" do field :expires_at, Timex.Ecto.DateTime, null: false field :token, :string, null: false field :use

Elixir 长生不老药任务中的大量数据

我有一个关于Elixir的应用程序,它应该接收大量数据,然后将数据分发到n个部分 这些零件必须并行处理,但同时工作的员工数量应受到限制。作为处理的结果,员工返回一个大的值数组 主流程收到所有工作人员的结果后,将所有工作人员粘在一个文件中 让员工完成任务是个好主意吗?员工的流程必须返回大量数据这一事实是否会有问题 或者,最好使用GenServer创建一个员工池,并进行同步调用?提供了一个简单的API来分解工作,然后收集结果,同时限制并发性: 文档中的示例: max_concurrency = Sy

Elixir 使用EXTO one liner更新字段?

在Ruby中,我可以: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") 我怎样才能在长生不老药中做类似的事情 Ecto.Changeset.change(MyApp.User |> where(email: "foobar"), email: "barbaz") |> MyApp.Repo.update 您可以在查询中使用set:,并使用Repo.update\u all/1运行它:

Elixir Phoenix Framework是否允许嵌套资源位于另一个嵌套资源内?

就嵌套资源而言,我可以在Phoenix中拥有这样的东西吗 resources "/landlords", LandlordController do resources "/houses", HouseController do resources "/units", UnitController end end 我有房东的地方有很多房子,房子也有很多单元。或者你知道如何做到这一点吗?是的,这是可能的,而且非常普遍。这是实现这一目标的最佳途径。请阅读a以获得更多信息,这里还有一

Elixir 长生不老药-地图结构上的图案匹配,而不是关键

在Elixir中,我有一个嵌套贴图列表,每个都具有相同的基本结构-例如: nested_map_list = [ %{foo: %{test: "Hi"}}, %{bar: %{test: "Hello"}}, %{baz: %{test: "Hey"}} ] 因此,它们在上层都有一个不同的键,但在嵌套贴图中有相同的键。有没有一种方法可以迭代这个列表,这样每次迭代都可以访问嵌套映射,而不管上面级别中的键是什么 为了说明我的意思,请考虑这个伪代码: Enum.each(n

Elixir匿名函数作为函数参数

试图将自定义函数传递给以下函数,但我运气不好 defmodule M do def custom_fn([head|tail],fnce) do fnce.(head) custom_fn(tail,fnce) end def custom_fn([]), do: nil end 试着这样称呼它: M.custom_fn([1,2,3], (fn(x) -> x * 10 end)) 明白了吗 ** (Fu

Elixir 在phoenix中查询时获取exto.Query.CastError

因此,我复制了一个查询,它将在其中预加载关联的用户 问题是它抛出了一个exto.query.cast错误,我似乎找不到解决方案 查询 def get_avatar!(id) do IO.inspect(id) query = from( p in AssocApp.Accounts.Avatar, where: p.user_id == ^id, select: p, preload: [:user] ) Repo.get!(Avatar, query

Elixir 理解模式匹配和管道操作符

我很难理解以下代码片段: Comeonin.Argon2.add_hash("hello123") |> Comeonin.Argon2.check_pass("hello123") 哪些产出: {:ok, %{ password: nil, password_hash: "$argon2i$v=19$m=65536,t=6,p=1$thCv1TGdiLszGx+bRugcqQ$EH8PpUqpCGTevihslOdSRPWS6+UlQJwv2pMOvwBJUS4" }}

Elixir 长生不老药/凤凰:为什么路线助手需要@conn?

在编写Phoenix应用程序时,我习惯于使用以下语法编写链接:将“我的个人资料”链接到:Routes.user\u url(@conn,:show,user)。最近,当与我一起工作时,我意识到您可以在这里传递MyAppWeb.Endpoint而不是@conn,并且它也可以工作。由于(我想象)大多数Phoenix应用程序只有一个端点模块,我有点希望它能推断出我的默认端点,这样我就不必每次调用path/url帮助器时都提供conn/Endpoint。这让我想知道为什么Phoenix设计这些助手总是需

Elixir 使用plug_cowboy(2.0)POST后重定向

我有这样一个简单的插件处理程序 post "/some/url" do # do something # render(something) end …但我想以某种方式重定向到另一个get处理程序,而不是呈现html 如何使用plug_cowboy 2.0实现这一点?没有魔法:您必须发送HTTP 302响应: conn |> put_resp_header("location", url) |> send_resp(conn.status || 302, "text/h

Elixir 创建混合项目时,是否所有.ex文件都必须位于/lib文件夹中?

我生成了一个新的mix项目,可以在/lib文件夹中看到.ex文件。当尝试使用“mix run”从项目根路径运行应用程序时,我收到一个错误,因为该文件位于/lib文件夹中。 为了克服这一问题,我在项目根目录中创建了一个新文件,使用start(_type,_args)方法,并尝试将该模块设置为mix.exs中的mod key,但它没有链接到指定的模块 是否有其他方法从项目根运行应用程序 def application do [ extra_applications: [:logger],

Elixir/Phoenix:服务器在生产中出现eafnosupport故障

我有一个Phoenix Web应用程序,它在开发模式下启动良好(ENV=dev mix phx.server) 但在生产模式中失败: ENV=prod mix phx.server=> [error]无法在:Ranch_tcp:listen([{:cacerts,:…},{:key,:…},{:cert,:…},:inet6,{:port,4000}])中启动Ranch listener HermesWeb.Endpoint.HTTP,原因是:eafnosupport(协议族不支持地址族) 端

什么';Elixir中的用法与Ruby中的实例变量类似吗?

我目前正努力满足这一要求。例如,我有一个函数列表 def function_a(a, b, c, d) do ... function_b(a, b) ... end defp function_b(a, b) do ... function_c(a, b) ... end defp function_c(a, b) do ... function_d(a, b) ... end defp function_d(a, b) do IO.inspect

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