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 Dynamo启动多个应用程序

使用Dynamo启动多个应用程序的最佳方式是什么。当我们创建项目时,dynamo会生成一个默认应用程序。我想在lib中再添加一个应用程序,并在启动服务器后立即启动它 但是,我尝试将它放在lib文件夹中,apps文件夹也修改了mix.exs,但是mix compile没有生成应用程序文件。明白了 要在同一个项目中使用多个应用程序,请创建伞式项目,在应用程序内部,您可以创建一个dynamo应用程序和一个普通应用程序,在dynamo内部,您可以在mix中添加其他应用程序作为依赖项。exs明白了 要在同

Elixir 如何检查eex中是否存在变量?

我正在处理模型的crud部分,我已经为其添加了图像支持。理想情况下,如果您正在编辑一个模型,我希望显示该图像,我希望这样做 <%= Logo.url({@company.logo, @company}, :thumb) %> 问题是company变量仅在edit操作中可用,因为新操作中还有一个company,所以我需要检查是否设置了@company <%= unless @company do %> <%= Logo.url({@company.logo,

Elixir 将数据注入Phoenix';s动作参数

我正在尝试编写一些插件,以减少项目中不需要的代码量,我希望获取一些会话数据,并将其放入控制器操作中的_参数中。但是我不知道怎么做。我遇到了functon assign/3,但据我所知,它分配了要在模板中使用的数据 def logged(conn, _opts) do case get_session(conn, :login) do nil -> conn |> Phoenix.Controller.put_flash(:error, "Musis

Elixir阻塞的GenServer进程

我有一个简单的GenServer,我希望在其中创建一个循环,每两秒钟调用一个函数: defmodule MyModule do use GenServer def start_link(time) do GenServer.start_link(__MODULE__,time) end #Start loop def init(time) do {:ok, myLoop(time)} end #Loop every two seconds d

Elixir 安装phoenix framework时出错

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

Elixir 如何定制凤凰号

使用phoenix框架,将自动生成:id,:integer。 但我不希望它自动生成并使用自定义id字段,例如:id,:string,就像这样 设定 defmodule MyApp.Item do 使用MyApp.Web,:model #@primary_key{:id,:id,autogenerate:false} 模式“项”是什么 字段:id,:string,自动生成:false#一些唯一的id字符串 字段:type,:integer 它会引发**(ArgumentError)字段/关联

对elixir中的重复字母进行分组或计数

我在用长生不老药数一数字符串上的重复字母。 我确实尝试过一些尝试,但直到现在都没有成功 让我们以这个字符串为例:“AAABBAAC” 所需输出为“3A2B2A1C” 将此字符串转换为列表,我可以计算每个字母,结果是“5A2B1C”,但我必须按照顺序进行计数 这是我正在做的代码: string |> String.graphemes |> Enum.reduce([], fn(letter, acc) -> Keyword.update(acc, letter, 1, &

Elixir 在哪里存储长时间运行的子进程的PID?

我正在编写一个用作数据库的简单web应用程序。Exredis文档说,使用以下命令初始化客户端: {:ok, conn} = Exredis.start_link 我的问题是,我应该把conn放在哪里?现在我正在调用Exredis.start\u link\1,它位于需要进行DB查询的每个函数的顶部,但这感觉既嘈杂又低效。我可以将conn传入,但这只会将问题转移到我的路由器上 我想在主应用程序启动时启动它一次,然后在整个应用程序中重复使用单个连接。我可以将其作为工作程序添加到我的主管,但我不知道

Elixir 最好的方法,以获得记录创造了今天与星凤凰?

来自Rails活动记录,我想知道如何实际获取今天创建的记录 在Rails中,我们可以这样做 User.where(created_at:Date.today.beginning_of_day..Date.today.end_of_day) 或者非常简洁 scope :created_today, ->(date = Date.today) { where(created_at: date..date.end_of_day) } User.created_today 用EXTO实现相同

Elixir 无法启动phoenix版本

昨天我遇到了一个很奇怪的问题 配置: - Erlang 19 - Elixir 1.3.1 - Exrm 1.0.6 - Phoenix 1.2.0 - Ubuntu 15.10 步骤如下: 使用MIX\u ENV=prod MIX Compile编译项目 使用MIX\u ENV=prod MIX-release构建发布 尝试使用rel/susuu_online/bin/susu_online控制台测试生成的项目 然后我得到一个错误,不明白为什么会发生这种情况 以下错误: Erlang/OTP

Elixir 处理phoenix中的每个异常,并在其之后执行操作

假设我有一个普通的phoenix应用程序。我想通过在其上实现ExcetpionTracker.action来跟踪其中的每个异常(操作可以是从json post到mailer send的所有内容)。我该怎么做 另外,我知道我可以使用airbrake,Honeybacker和很多类似的东西,但我不喜欢使用它们。你可以创建一个插件,将其插入你的应用程序,并在插件的处理错误功能中处理报告,如文档页面所示。这只是针对控制器的。那么全局OTP处理呢?所以你想跟踪VM中任何进程中任何函数引发的所有异常?你可以

Elixir 读取依赖关系树的正确方法是什么?

我想解析app deps树并生成一个映射。 我目前正在阅读顶级DEP,如: top_level_deps = Mix.Dep.loaded([]) |> Enum.filter(& &1.top_level) 我在递归方法中使用Enum.reduce用于顶级deps,然后用于dep.deps 在第四级之前一切都很好,没有deps… 例如: 应用程序A需要B需要C需要D-我在检查C DEP时看到空列表(这里也没有十六进制软件包)。 当我将应用程序A或B修改为需要D,而C不需

Elixir 如何将文件中的所有行读入元组?

我需要随机访问英语词典文件(“/usr/share/dict/words”)中的所有单词,其中每个单词都在一行中 现在,我想以随机顺序访问所有这些单词,我想将文件读入允许随机访问的元组 我知道我可以将文件读入如下列表: words = File.stream!("/usr/share/dict/words") |> Stream.map(&String.trim_trailing/1) |> Enum.to_list 但这并不能让我随机访问这些单词。如何将

Elixir 建立一种关系

我有一些模式,如下所示: defmodule Busiket.LanguageCode do use Busiket.Web, :model schema "languages_code" do field :code, :string field :text, :string timestamps end end defmodule Busiket.Repo.Migrations.CreateLanguageCode do

是否可以在不使用模型的情况下使用Elixir变更集/验证?

这是否会像定义您的模式和def changeset一样简单,并且从不编写任何Repo.insert(changeset)?我没有看过以后的文档: 您可以在不定义模式的情况下使用变更集,这是可能的,我发现它是验证API请求的完美方式 您可以将没有后端的模型定义为: defmodule MyApp.Models.File do schema "" do field :description, :string, virtual: true field :url, :

Elixir 外星人员为什么要预加载,为什么需要id

当涉及到向现有模型添加新关联时,我对Ecto感到相当困惑。假设我有一些讨论板,用户可以在其中查看帖子,我有以下模型: schema "discussion_items" do many_to_many :likes, XXX.Tag, join_through: "discussion_items_likes" timestamps() end schema "likes" do belongs_to :user, XXX.User timestam

Elixir Phoenix框架使用控制器生成随机字符串

我想生成一个令牌并将其插入我的mysql数据库,这是当前的代码,我只是传递“123”。mix phoenix.gen.secret可以生成随机字符串如何将其用于控制器 def create(conn, %{"token" => token_params}) do token_params = Map.merge(token_params, %{"value" => "123"}) changeset = Token.changeset(%Token{}, token_params)

Elixir 为什么是长生不老药';s Enum.sum这么快?

跑步时 1..10000000000000000000 |> Enum.sum 结果是在似乎恒定的时间内计算的-我假设它使用公式1+2+…+n=n(n+1)/2 是什么让elixir能够进行这种优化?1..n表示法是否不同于将普通列表声明为[1,2,3]。当我检查1..100000时,它似乎返回一个字符串。这是怎么回事?1..100000000000000000是一个范围,Elixir在枚举和中有一个特例,用于使用整数求和公式的范围: def sum(first..last) when

Elixir Phoenix plug检查所需的查询参数

我有以下控制器: defmodule Campaigns.CampaignController do use Campaigns.Web, :controller alias Campaigns.Campaign alias Campaigns.ApiParams plug :ensure_account_id def index(conn, %{"account_id" => account_id}) do query = from c in Campa

Elixir 凤凰城的独立Exq

有一种方法可以作为独立应用程序运行exq:。但问题是我真的不明白如何让它工作。如果exq作为依赖项添加到我的phoenix应用程序中,那么当我运行应用程序时,它已经在运行了。我可以让作业排队,它们正在运行。所以我的问题是,如何不将其与我的应用程序一起运行,而是将其作为单独的应用程序运行?(例如,可以在Heroku上的单独工作程序上运行它)。您是否尝试在Phoenix应用程序中运行Exq,可以排队,但不让它运行该实例中的作业 有两种选择: 1) 您可以将Exq设置为仅在排队器模式下启动。使用此选项

Elixir 凤凰城赢了';不要将主题与频道匹配

我目前正在Phoenix 1.2.1版和Elixir 1.4.1版上编写一个即时消息服务器,遇到了一个涉及频道的问题。我开始这个项目时没有html,也没有早午餐,如果这会影响什么的话 当我尝试将此JSON字符串发送到服务器时: { "topic": "mailbox:tom" , "event": "join" , "payload": {"hello": "world"} , "ref": 1234} 我从命令提示符处获得忽略InstantMessenger.UserSocket中不匹配的主

Elixir 对datetime字段按月进行分组并返回元组列表的EXTO查询

作为附加问题: 如何更改查询以返回包含月份整数和分组计数的元组列表?因此,您的结果如下所示: [{1, 2}, {2, 2}, {3, 2}, {4,2}] 这是从对这个问题的评论中得出的 query |> group_by([e], fragment("date_part('month', ?)", e.inserted_at)) |> select([e], {fragment("date_part('month', ?)", e.inserted_at), count(e

在elixir genstage consumer中使用redis连接

我有一个genstage应用程序的例子,在它的使用者中,我需要使用与redis的连接。我不明白我需要如何通过这个连接来处理事件 如果我写: defp connection do {:ok, conn} = Redix.start_link(host: "0.0.0.0", port: 6379) conn end 然后,每次在handle_events函数中调用连接时,它都会创建一个新连接 如何解决此问题?您可以将连接保持在GenStage消费者的状态(就像您在GenS

Elixir Kubernetes群集和Phoenix-自动执行“mix-exto.migrate”?

我正在把我的Phoenix应用程序推到Kubernetes集群进行审查。我使用GitLab为web服务器创建一个服务,为临时postgres pod创建另一个服务 我想做的是自动化mixexto.create和mixexto.migrate。然而,有一个时间问题——postgres服务器还没有准备好的时间很短 在创建web应用程序服务之前,我可以在部署脚本中轮询postgres服务。但是,这是最实用的方法吗?库伯内特斯有一种方法,可以帮助你 根据文档,这里是一个等待dB容器的应用程序容器的示例

Elixir混合文件-:应用程序vs:extra_应用程序-何时使用哪种?

发件人: :应用程序-应用程序在运行时依赖的所有应用程序。默认情况下,此列表将根据依赖项自动推断。任何额外的Erlang/Elixir依赖项都必须在:extra_applications中指定。Mix和其他工具使用应用程序列表,以便在启动应用程序本身之前启动依赖项 :额外的应用程序-您希望在应用程序启动之前启动的Erlang/Elixir应用程序列表。例如,Elixir的:logger或Erlang的:crypto 如果自动推断出:applications的列表,那么当我们应该将应用程序添加到:

Elixir 如何从伞根目录启动Phoenix sub应用程序

在凤凰伞应用程序中,我可以跑步 mix phoenix.server编译并运行所有应用程序。我想有一个单独的命令来编译和运行每个子应用程序独立 他们说这是可能的,但我试过了,没能猜出命令的格式 我们可以从任何目录运行mix phx.new来引导我们的 凤凰城申请。菲尼克斯将接受绝对或绝对的 新项目目录的相对路径 从@Dogberts的回复来看,这是对文档的误解。可以通过@Dogberts response传递路径来创建具有phx.new的新应用程序,而不是使用phx.server编译和运行,这是

Elixir 更新元组时共享哪些条目?

官方文件中说: 请注意,这仅适用于元组本身,而不适用于其内容。对于 实例,当您更新元组时,所有条目都在 旧元组和新元组,已替换的条目除外。在里面 换句话说,Elixir中的元组和列表能够共享它们的 目录这减少了语言的内存分配量 需要执行,并且由于不可变 语言的语义 这是否意味着:在更改元组时,新旧元组使用相同的内存地址共享数据,而不是像erlang中那样分配新内存?这意味着元组中的值不会被克隆 例如,Erlang中的一个小整数占用1个字的内存,一个元组占用2个字+每个元素的大小。如果你现在创建一

Elixir 如何处理Phoenix中的模式多态性?

建议在Phoenix中处理多态关联的方法似乎是添加一个中间模式,其中包含对其他模式的引用: ) 因此,如果我想用不同种类的动物创建模式,我会: defmodule Animal do use Ecto.Model schema "animals" do belongs_to(:dog, Dog) belongs_to(:cat, Cat) belongs_to(:owner, PetOwner) end end defmodule Dog do

函数nil.email/0在elixir phoenix中未定义或为私有

我想知道为什么会出现这个错误,以及如何修复。这可能是由于数据库中的用户id冲突造成的吗?另一件事是,这甚至可能不是发出此错误的文件 这是我在注释掉id:user.id和user:user.username并用静态整数替换hash_email后得到的结果 我删除了整个数据库,并再次运行mixecto.create&&mixecto.migrate 和mix phx.server并创建了一个新的用户帐户 还使用不同的浏览器进行了测试。因此,我清除了以前浏览器的cookies,现在可以使用了 我做

在Elixir宏中获取当前范围的文档

我正在尝试编写帮助器宏,它允许我在没有大量样板的情况下编写一堆长生不老药结构,因此我编写了宏: defmodule Events do @moduledoc false defmacro defevent(module, fields \\ []) do keys = Keyword.keys(fields) quote do defmodule unquote(module) do @type t :: %__MODULE__{unquo

Elixir-如何使用不在最后位置的默认函数参数?

考虑一下这个简单的函数: def myfun(first \\ :a, middle \\ :b, last \\ :c) do {first, middle, last} end 我想为第一个和最后一个参数传递函数特定的值,并让它推断中间的参数。我以为这样的事情可能会奏效: {:foo, :b, :baz} = myfun(:foo, _, :baz) 但事实并非如此 完成我要做的事情的正确方法是什么?正如Aleksei Matiushkin在评论中提到的,当所有参数都是可选的时,使用

Elixir 不处理强制转换的事件处理程序的GenServer实现

我试图在Phoenix应用程序中用作的事件处理程序,但由于某些原因,我似乎无法理解为什么没有调用句柄转换函数。我使用:observer.start()检查了进程是否处于活动状态 在GenServer正确处理cast调用时,我是否缺少一些东西 本质上,流程函数应该处理传入事件并将其强制转换到GenServer,其中GenServer将处理强制转换并对该事件执行域逻辑 ----发电机服务器模块---- defmodule App.Notifications.EventHandler do 使用Gen

不使用Elixir中的科学形式删除十进制尾随零

我希望删除小数部分的尾随零,并将整数部分保持为中性形式(因此不会将其从100更改为1e2。正确使用会删除尾随零,但也会切换到科学记数法 iex(30)> d = Decimal.new("1.00000") #Decimal<1.00000> iex(31)> Decimal.reduce(d) #Decimal<1> iex(32)> d = Decimal.new("100.00000") #Decimal<100.00000> iex(

Elixir 如何基于两列对EXTO中的表进行排序

我有一个带有时间和操作列的表。操作列包括create、update和delete值,时间有灵丹妙药utc datetime。我想基于日期时间进行排序,如果基于同一时间戳存在多行,我想首先获取删除行,然后创建和更新 错: 1. { time: TIME1, operation: "create" } 2. { time: TIME1, operation: "delete" } 3. { time: TIME1, operation: "updat

Elixir 用长生不老药格式化时间

我是Elixir的新手,尝试将Rails API移植到Phoenix作为一个学习项目 我有一个博士后时间域,我已经将它添加到了一个外部培训计划中: 问题:我想输出一个12小时格式的时间版本,例如16:30,作为字符串:例如,4:30pm。我一直很难找到一种简单/标准的方法来做这件事 这是我迄今为止最接近的解决方案: def format_time(time) do {:ok, {hours,minutes,y, z}} = Ecto.Time.dump(time) {hour, ampm

Elixir 长生不老药无效字符串

我在iex中尝试了以下代码: iex(13)> String.valid?(<<128>>) false iex(14)> String.valid?(<<191>>) false iex(13)>String.valid?() 假的 iex(14)>字符串。有效?() 假的 为什么两个字符串都无效?就像Ramon Snir所说的,您需要使用utf8。从入门指南中: 字符串是UTF-8编码的二进制文件。为了准确理解我们的意思,我们需

Elixir 模式匹配映射作为函数参数

我在编写函数子句时遇到了问题,我需要根据映射进行模式匹配,并保留它以便在函数中使用。我无法理解语法将是什么。基本上我想要这样的东西: def check_data (arg1, %{"action" => "action1", ...}, arg2) do # access other keys of the structure end 我相信这是非常基本的,但这似乎是我无法理解的。我已经阅读了许多教程,但似乎找不到一个可以处理此用例的教程。要匹配地图的某些键并将整个地图存储在一个变

Elixir 菲尼克斯真人秀与js;放上“U flash”;不出现

我对phoenix form submit进行了一些自定义,使用jquery防止重新加载(因为我的登录表单处于模式),表单: jquerys preventdefault()是否可能是原因:闪存未显示错误?我遗漏了什么?据我所知,你基本上破坏了你想要使用的机制put_flash功能将数据放入flash会话范围,您可以在渲染中访问该范围。但是您不再加载页面,而是使用ajaxpreventDefault()使页面不重新加载(这可能是您想要的) 您可以按照您对ajax的设想使用它,只将数据作为json

Elixir 如何使已启动的phoenix服务器写入pid?

我使用edeliver将phoenix应用程序部署到我的服务器。如果服务器突然重启,我希望我的phoenix应用程序能够自动恢复并受到监控。似乎systemd工具可以帮助我,但它需要将phoenixpid文件存储在某个地方 有没有办法让edeliver在部署后立即保存phoenixpid文件? 也许有比systemd更好的方法在服务器重启后恢复和监视应用程序 注意:我最感兴趣的是监视pid。我终于找到了解决方案。实际上,edeliver中有部署后挂钩 在.deliver/config中: pos

Elixir Phoenix:Mix Phoenix.gen.html生成失败的测试

我运行了mix phoenix.gen.html主题使用的标题:boolean,然后运行了mix-exto.migrate来运行迁移 我把这个添加到我的路线中 defmodule ParrotApi.Router do use ParrotApi.Web, :router pipeline :browser do plug :accepts, ["html"] plug :fetch_session plug :fetch_flash plug :pro

Elixir地图中相同值键名称的模式匹配快捷方式

我以这种风格进行了大量的模式匹配: def action(%{start_date: start_date, amount: amount, notify: notify %}) do # some action end 大多数情况下,我为参数选择的名称与映射中的名称相同。是否有一种快捷方式可以指定模式匹配大小写,而不必为键和值重复相同的名称 以下伪代码行中的某些内容: def action(%{start_date: %s, amount: %s, notify: %s}) do I

不使用Enum.partition在Elixir中快速排序

是否可以不使用Enum.partition构建快速排序?我使用一个过滤器实现了这段代码,但是我在列表中遍历了两次,以得到另外两个。有人能给我演示一下如何在单子上走一次吗 defmodule QuickSort do def sort([]) do [] end def sort(l) do [head | tail] = l {l1, l2} = partition(head, tail) sort(l1) ++ [head] ++ sort(l2)

Elixir 凤凰城的普通逻辑在哪里写

我想通过控制器编写通用逻辑。 我想我应该使用plug。然而,我不知道如何编码 我只想在FooController和BarController中对index01使用公共逻辑,但对index02使用公共逻辑 foo_controller.ex defmodule MyAppWeb.FooController do use MyAppWeb, :controller def index01(conn, _params) do ~~~ end def index02(conn

Elixir 指定模块名称时如何访问配置相关键

在phoenix中查看配置文件时,如果我创建如下配置: config :myapp, http: 4000 Application.fetch_env!(:myapp, :http) [ {:ecto_repos, [MyApp.Repo]}, {.Repo, [ username: "postgres", password: "postgres", database: "myapp_dev", hostname: "localhos

Elixir 如何在Phoenix LiveView中测试句柄_info/2?

凤凰卫视奇才们好 是一种普遍的行为。如果您阅读文档,您可以找到: 除了提供的同步和异步通信 以及通过以下功能发送的“常规”消息: ,以及类似的,可以在内部处理 回调 因此,只要您知道流程的pid,您就可以发送其中任何一个。经过大量研究、反复试验、错误、错误(迭代),我们提出了以下测试: test "handle_info/2", %{conn: conn} do {:ok, view, disconnected_html} = live(conn, "/") assert disconn

Elixir IEx外壳,如何突破当前的“接收”障碍

我是长生不老药的新手,在iexshell中进行实验学习,我是一个没有问题的人 为简单起见,我们将当前shell会话进程称为“主进程” 我生成一个子进程,在“主进程”中编写一个receive块来侦听子消息。当点击回车键时,它会将“主进程”置于等待状态。这基本上冻结了“主要流程”,使其对进一步输入不负责任 很多次我都被错误地困在这种状态中。如果我搞砸了,我需要关闭shell并重新开始,失去所有的状态和设置 我的问题:是否有办法撤销/取消/中断工作的接收块 或者,是否有一种方法,我可以启动另一个会话,

elasticsearch 使用Httpoison查询ElasticSearch

当我在ElasticSearch中使用DevTools时,要获取POD的信息: 它给了我大约310行: 但当我在我的长生不老药应用程序中这样做时: logs = HTTPoison.get("https://x.x.x.x:9200/lo*/_search?q=kubernetes.pod_name:logs-dep-test-7469c67667-fcrzh", hackney: [:insecure, basic_auth: {"xxxx", &q

上一页 1 2 ...  55   56   57   58    59   60   61  ... 下一页 最后一页 共 125 页