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中获取两个(字符串)日期之间的差异

我从客户端应用程序收到一些日期,格式为2017-03-20 17:01:24,我希望比较和提取小时数、天数、分钟数或任何可用计数器(我希望灵活) 我看到timex软件包的特点如下: with {:ok, date} <- Date.from_iso8601(string_date) do Date.diff(date, Date.utc_today) end Duration.diff(Duration.now,Duration.zero,:天) 我的问题是,我不

Elixir 如何将此SQL join语句转换为EXTO查询?

我有一个SQL查询,只返回任何其他用户发送给用户的最新消息(即,“仅显示每个消息发送者发送给我的最新消息”)。在纯SQL中,我可以得到如下工作: select messages.* from messages join (select max(inserted_at) maxtime,sender_id from messages group by sender_id) latest on messages.inserted_at=latest.maxtime and messages.send

Elixir 为什么长生不老药';s String.capitalize()函数是否将剩余字母小写?

Elixir的函数“将给定字符串中的第一个字符转换为大写,其余字符转换为小写”。将第一个字符大写并保持其余字符不变不是更直观吗?也许我缺少一些理由 当前的实施导致了本地ATM->本地ATM,忘记PIN->忘记PIN等。这是get要求资本化的elixir api def capitalize(string, mode) when is_binary(string) do {char, rest} = String.Casing.titlecase_once(string, mode)

使用shell脚本调用Elixir方法

这是我的Elixir模块,包含在MyModule.erl中 defmodule MyModule do def print do IO.puts "hi all" end end 我试图使用shell脚本运行elixir方法。它编译文件,但 iex MyModule.erl MyModule.print 他没有跑步。我认为这是因为第一个命令进入Erlang虚拟机。如何调用此方法?Elixir文件通常具有.ex扩展名。如果您不打算编译它,我们建议使用.exs文件。

Elixir Exto/Postgrex在Repository.insert上输出奇怪的调试消息

(代码位于Github上) 尝试将EXTO/Postgrex用于某些模型时,我在Repository insert上得到了一个意外的输出 获取以下错误 07:08:32.063 [error] Error in process <0.148.0> with exit value: {#{'__exception__'=>true,'__struct__'=>'Elixir.Postgrex.Error',message=>nil,postgres=>#{cod

Elixir 如何键入cast解码JSON,就像它来自数据库一样

从数据库加载日期/时间类型时,EXTO将转换为EXTO.DateTime类型。从JSON字符串加载模型时,如何应用相同的类型转换 defmodule Rocket.User do use Rocket.Model schema "users" do field :created_at, :datetime field :name, :string field :email, :string field :password, :string fie

Elixir 可怕的冗余菲尼克斯控制器

我正在做我的第一个Phoenix应用程序,并尝试做新的/2控制器。 我写的代码是 def new(conn, %{"fbid" => fbid, "latitude" => lat, "longitude" => lng, "content" => content}) do {fbid, _} = Integer.parse(fbid); {lat, _} = Float.parse(lat); {lng, _} = Float.parse(lng

Elixir Phoenix Framework-索引应显示消息,其中state==“0”;新";

我希望在def索引中只显示状态为“new”的消息 以下是我必须显示所有消息的工作代码: def index(conn, _params) do messages = Repo.all(Message) render(conn, "index.json", messages: messages) end 我正在尝试筛选消息,以仅显示状态为“新建”的消息。以下是我尝试失败的代码: def index(conn, _params) do messages = Repo.all(Messa

Elixir:如何正确描述mix.exs设置?

我试图使用HTTPoison编写一个web抓取工具。作为第一步,我按照下面所示的步骤编写了一个简短的HTTP访问代码 通过混合创建项目 $mix新的httptest1 在lib/httptest1.ex上编写一个简短的代码 defmodule Httptest1 do require HTTPoison def test1 do ret = HTTPoison.get! "http://www.yahoo.com" %HTTPoison.Response{status_

Elixir 在Phoenix show模块中未找到闪存消息

我正试图在中重新创建Flash Messages guide,但我收到一个错误,该错误表明未定义的函数:Phoenix.Controller.Flash.put/3(模块Phoenix.Controller.Flash不可用) 然而: 我的router.ex浏览器管道中有插件:fetch_flash。 我已包括: use Phoenix.Controller alias Phoenix.Controller.Flash 在模块定义的顶部。 我还尝试将语法调整到我的代码中(在渲染中我会收到一个

Elixir中字符串比较的双等和三等之间的差异

我在读一本关于长生不老药的书 在字符串比较中,它表示: Elixir提供了两个用于比较字符串相等性的选项,=和==运算符。=运算符通常是最简单的,尽管另一个运算符产生相同的结果 如果两个运算符的意思相同,那么使用它们的目的是什么?想到的一个例子是float,它使用与字符串相同的比较函数: iex> 1 == 1 #true iex> 1 == 1.0 #true iex> 1 === 1 #true iex> 1 === 1.0 #false 为了你== i

Elixir 如何判断函数是否缺少参数,或者它是否存在?

我可能有个愚蠢的问题。来自Ruby背景,如果我忘记了方法的一些必需参数,解释器将抛出一个缺少参数的错误,我知道这是一个很小的错误 因为我对长生不老药还不熟悉,所以我会得到未定义的函数Random.some_function/2,当可能是Random.some_function/3被定义时,我只是碰巧忘记了 除了谷歌搜索或查看文档,还有没有更快的方法可以找到答案?只是好奇。在iex终端中,您可以使用h关键字来显示所需功能的文档。这将适用于所有定义了文档或语法中的文档的函数。范例 h Enum.re

Elixir 分配@changeset在eex模板中不可用

我正试图学习凤凰城的形态系统,包括外星模型,但我遇到了一个我无法通过的问题。我创建了一个表单: <div class="jumbotron"> <%= form_for @changeset, user_path(@conn, :create), fn f -> %> <label> Login: <%= text_input f, :login %> </label> <label&

Elixir 身体类助手

我正在尝试复制以下Ruby on Rails助手: def body_classes "c-#{params[:controller].underscore} is-#{params[:action].underscore}" end 就我所知: def body_classes(conn) do "l- is-#{action_name(conn)}" end 如何检索布局/视图名称?您正在查找或和 如果你只想用动词,你可以用 比如: Phoenix.Naming.reso

Elixir Phoenix Framework-如何通过表单填充地图字段?

我试图填充一个字段:params(来自模型/模式),它是一个映射。我有一个工作表单_,我想通过复选框填充它:params映射,这样当表单提交时,控制器将收到类似%{…params=>%{“param1”=>“true”,“param2”=>“false”}的内容。 我已经查看了输入,但这似乎不是我所需要的,因为它依赖于嵌套的模式和模型,这意味着我需要为每一组新参数创建一个新的模式(如果参数发生变化,我需要一些通用的,不需要更改源代码) %> 工具 参数1 参数2 执行日期 因此,我需要将所有这

Elixir 凤凰城的斯普迪

我知道Cowboy能够处理SPDY协议(但不是HTTP2)。 然而,查看Phoenix框架源代码,我只看到http和https调用。斯普迪被忽视了吗? 遗憾的是,我的Elixir/Phoenix站点的页面服务速度比它的老Rails版本慢,因为Apache/Passenger使用了SPDY,而Phoenix没有 代码库中对SPDY的唯一引用似乎是 我是否应该尝试使用Phoenix,看看如何添加正确的牛仔称呼,还是我遗漏了一些明显的东西?老话题,但牛仔2.0支持HTTP/2 这里是凤凰城牛仔2适配器

如何在Elixir中将字符串转换为函数

我需要对值映射应用一些函数。 这些函数在最坏的情况下大约有900个函数,所以我在数据库中创建了它们作为记录,并立即将它们加载到地图中。这样我可以创建一个管理页面来管理所有的转换公式。。。有一天 现在我有这样的 conversion=%{"0":"Tools.Myfunc1/1","1":"Tools.Myfunc2/1",etc...} 然后我需要在map语句中应用/执行它们 问题是它们是字符串,我得到了这个错误 |>Stream.zip(转换) |>map(fn{rawValue,formu

Elixir 如何使用EXTO';时间戳?

由于在处插入的和在处更新的不能为null这将不起作用: def change do alter table(:channels) do timestamps end end **(Postgrex.Error)错误(非空冲突):列“插入位置”包含空值 有没有一种简单的方法可以在不复制时间戳功能的情况下完成此操作?该时间戳/1功能接受选项关键字列表,您可以使用它设置默认值 def change do alter table(:channels) do timestam

Elixir 如何使用EXTO插入SqlServer表?

我正在尝试将EXTO连接到现有的SqlServer数据库。SqlServer希望自动填充主键字段,因此在插入时无法提供值。我最初将该字段标记为必需的,但即使在删除该字段之后,它构造的插入查询仍然具有该字段,并且正在尝试将:nil放入其中。所以我还是犯了个错误。是否有一种特殊的方法来设置模型,或者我应该传递给插件以使其工作?如何插入到SqlServer 我正在使用tds_外部适配器。我得到的错误是: Cannot insert explicit value for identity column

Windows-Elixir';混合';在iex intepreter中未定义

我想使用“mix”命令构建一个应用程序 混合新的appname--模块 但在iex解释器上,它不被识别 我在线阅读了运行我想要的另一个替代方法是将其作为脚本参数传递: $bin/elixir bin/mix new appname--模块 但是这也不起作用mix是一个可执行文件,您需要从操作系统外壳运行,而不是从Erlang/Elixir外壳运行。顺便说一句,Windows与此无关。

Elixir 使用正则表达式捕获一个单词后、另一个单词前的子字符串不起作用

在我的模板(html.eex文件)中,我想使用一个正则表达式在一个包含多个CSS值的字符串中捕获特定CSS属性的值。我认为正则表达式是正确的,但是我得到了一个语法错误 例如,要捕获此字符串(40)中width的值: 我正在使用: <%= Regex.named_captures(~r/(?<=width: ).*?(?=px)/, to_string @A) |> elem(0) %> 我得到一个参数错误。您可以尝试: Regex.named_captures(~r

Elixir 如何访问文件夹中的模块/lib";在凤凰城?

比如说,我在phoenix应用程序的“lib”文件夹中创建了一个模块。我如何从控制器访问它,我必须先加载它吗?或者只是化名?或者先在启动时加载,然后加载别名?所有.ex中的所有模块(而不是.exs)每当执行mix compileinto\u build/dev/lib/my\u app/ebin时,lib中的文件将编译成.beam文件,其中dev是混合环境,my\u app是应用程序的名称。每当您尝试在尚未加载的模块上调用函数时,Erlang VM都会在所有“代码加载路径”(已包含\u buil

Elixir 如何设置在IEx会话关闭前运行回调?

我想设置一些清理代码,以便在用户终止REPL之前运行 会话以iex-S mix开始 我期待着跑步: System.at_exit fn (_) -> File.write! "afile", "it works" end 在iex会话中创建名为afile的文件,但这似乎没有发生 更具体地说,我试图实现什么,我在REPL内部启动一个系统进程(使用system.cmd/2),我希望在iex进程终止时终止这个进程。破解erlang控制台行为(Elixir只是为iex派生erlang控制台)这太

Elixir解释器错误

我在跟踪上面写着“跑步”的地方: iex> i 'hello' 所以我跑了: iex(1)> i 'hello' 得到: ** (CompileError) iex:2: undefined function i/1 长生不老药版本: Erlang/OTP 18[erts-7.3][source][64位][smp:4:4][async threads:10][kernel poll:false]Interactive Elixir(1.1.0-dev)您链接到的指南使用的函

Elixir 为什么在EXTO查询中需要pin运算符?

在Elixir中,pin运算符用于防止变量重新绑定。但是,对于类似于 from u in User, where: u.username == ^username 《凤凰城》节目的作者(第7章)说 请记住,^运算符(称为pin运算符)表示我们希望保持^用户名不变 但这听起来并不正确,因为显然,查询中的比较不会导致变量的任何重新绑定 这本书的作者(何塞·瓦利姆(JoséValim)合著)错了吗?EXTO查询中的pin操作符仅仅是EXTO DSL的构造,而不是通常的Elixir pin操作符吗?或

Elixir 如何从url获取值并将其传递到操作中?

我想填写html表单以创建注释正文,这样我就可以通过了解thread\u id和user\u id将其插入数据库。现在我很难获得线程id,即使是在url中 现在,我有这样的路线: thread_path GET /manage/thread Rumbl.ThreadController :index thread_path GET /manage/thread/:id/edit

Elixir 预加载长生不老药和凤凰

当我试图与数据库中的用户创建会话时,遇到了这个错误。我的用户模式有很多项目,因此当我尝试创建会话时,会出现此错误 项目:#外部关联。未加载 我想我明白它在说什么,但我不知道在哪里预加载数据,以便页面将呈现在这里,这是我收到的全部错误 defmodule PerriAir.Router do use PerriAir.Web, :router use Honeybadger.Plug use ExAdmin.Route pipeline :browser do protoc

Elixir 如何为phoenix框架项目加载环境变量

我创建了一个Phoenix应用程序,然后添加了发送电子邮件的竹模块,今天下午我成功地使用Elixir发送了我的第一封电子邮件,但我不得不将用户名和密码硬编码到config.exs 我在phoenix项目的根目录中读取并设置了一个.env文件,我正在尝试使用config.exs文件中的以下语句加载环境变量 username: System.get_env("SMTP_USERNAME"), password: System.get_env("SMTP_PASSWORD"), 然而,电子邮件没有被

Elixir 在节点集群上运行Phoenix项目

我尝试在一台主机上的两个节点上运行我的应用程序: 我创建了配置文件: [{kernel, [ {sync_nodes_optional, ['n1@127.0.0.1', 'n2@127.0.0.1']}, {sync_nodes_timeout, 10000} ]} ]. 我运行(从终端1): 然后(从2号航站楼): 我收到: ** (Mix) Could not start application app: App.start(:normal, []) retur

Elixir 阻塞/长时间运行的Phoenix Requets

我正在给凤凰路线打电话,它的工作往往需要10秒以上的时间。这太长了,凤凰城超时了 这个问题可以通过WebSocket轻松解决,但是我想知道如何使用普通REST来解决 菲尼克斯过程模型是什么?是否所有请求都进入工作池,只是即使使用工作池也长时间阻止是不明智的 我想知道普通休息是怎么做的 您可以提高代码的效率,增加Web服务器上的超时时间,或者两者兼而有之 什么是菲尼克斯过程模型?是否所有请求都转到工作池 不,请求不会进入工作池 对于web服务器,Phoenix当前正在使用。因此,当您访问Phoen

在Elixir中,是否有方法确定模块是否存在?

正如标题所述,我的问题是: 有没有办法通过Elixir中的模块名称来确定模块是否存在? 在四处寻找了一段时间后,我终于找到了,但这并不是我想要的。在这篇文章中,他们提到了代码。确保\u加载/1,但我认为这不是我所需要的 现在,我用以下方法来解决这个问题: def module_exists?(module_name) where is_atom(module_name) do !is_nil(module_name.module_info) rescue e in UndefinedFu

Elixir Phoenix是否允许以字符串形式发布查询?

例如,打电话 GET /users/1/items/2?foo=bar 调用show(conn,params)和“foo”=>“bar”在我的params中 这个职位的等价物是什么 POST /users/1/items/2?foo=bar 它不会影响我的更新功能。相反,我看到: **(Phoenix.Router.NoroutError)找不到POST/users/1/items/2(MyApp.Router)的路由 编辑:附加信息 #routes resources "/users",

Elixir 在ExAdmin中编辑时,当定义为集合下拉列表时,如何保留该值

在ExAdmin中编辑时,使用集合定义的所有字段都将丢失其值。编辑时如何保存它们 form vehicle do inputs do input vehicle, :vehicle_type, collection: Enum.map(VehicleTypeEnum.__enum_map__, fn a -> Atom.to_string(a) end) 选择和创建工作,但当我单击“编辑”时,它会返回为每个下拉列表选择车辆类型 [更新] 问题似乎是我使用的是EctoEnum

向CircleCI添加Elixir应用程序时未找到Postgres用户名

我很难在CircleCI上获取我的Elixir/Phoenix应用程序。 我已经添加了他们的配置文件,试图搞乱它,但似乎没有任何效果。。。上面说 ** (KeyError) key :username not found in: [types: Postgrex.DefaultTypes, backoff_type: :stop, pool: DBConnection.Connection, database: "postgres", otp_app: :todo_with_auth, repo

Elixir 是否可以从dev.exs中的config.exs访问配置对象? 上下文

我在config/config.exs中有一个用户提供的配置对象。事实证明,我需要一个用户提供的url到dev.exs文件中 从技术上讲,这个值可能是一个环境Docker变量,但我试图使config.exs成为唯一的真实来源 问题 我做不到 我想没有办法了。我错了吗 更新/更多信息 我在config/config.exs config :data, Document, deployment: %{ local_host: "somehost", swarm_host: "ot

使用EXTO/Elixir更新Postgres表

我最近一直在学习长生不老药,我想知道解决我当前问题的正确语法是什么。我正在尝试使用Elixir更新一个模型,此更新包括向当前值添加一个值(即金额=金额+传递的金额)和将一个新值推送到一个EXTO数组(即交易++新交易)。以下是我最新的尝试: def add_transaction(conn, %{"coin" => coin_params}) do coin = Repo.get_by!(WalletCoin, ticker: coin_params["ticker"])

Elixir 在什么条件下,需要在异位迁移中调用flush()?

我想弄清楚在什么情况下需要使用flush 作为反例,这种(琐碎的)情况不需要刷新: defmodule MyRepo.Migrations.TestFlush do use Ecto.Migration def change do create table(:test) alter table(:test) do add :a, :integer end end end 它使用exto.migrate和exto.rollback分别“向前”和“

用于验证回调的Elixir mixin

我已经阅读了关于这个主题的其他答案,但我特别想关注Elixir自己的关于混合和DSL的内容 在他们的例子中,他们说有三种选择: # 1. data structures import Validator validate user, name: [length: 1..100], email: [matches: ~r/@/] # 2. functions import Validator user |> validate_length(:name, 1..

Elixir 带宏的动态标识符

我正在使用宏,我想将一个动态标识符传递给苦艾酒宏enum,希望用一个集合列表生成不同的enums。一切都在一个的理解框架内 我已经读到,Kernel.apply/3对宏不起作用 我也试过: 我也试过不加引号: 似乎我无法解压缩作为宏enum标识符传递的任何内容。有可能做到这一点吗?有可能。问题在于enum假设第一个参数是原子 defmodule MacroHelper do defmacro enum_wrapper(names, do: block) do for name &l

Elixir 将项目模块导入IEX会话

我有一个名为MyApp的应用程序,每当我通过IEx-S mix打开IEx会话时,我都必须这样调用repo:MyApp.repo.all(MyApp.User) 如果我可以自动导入项目模块,这样我只需执行此Repo.all(User)即可获得与上述相同的值,我将非常高兴 有什么方法可以做到这一点吗?您可以使用。您可以创建文件并添加: # .iex.exs alias MyApp.Repo 这将为您设置这些别名。该文件中有设置变量,或者添加一些shell配置。您可以使用。您可以创建文件并添加: #

如何在Elixir Exto中存储字符串的二维数组。如何将匹配长度放入列表?

如何将2d列表保存到postgres中? 或者将匹配的长度放入列表 我在迁移过程中尝试过这个 add :checkpoints, {:array, :string} 和模式 field :checkpoints, {:array, {:array, :string}} 但当我将[[“C23”、“E12”]、[“N34”]、[“G22”]]的示例值保存到:checkpoints字段时, 我得到这个错误: (ArgumentError) nested lists must have li

Elixir 当链接进程被终止时,如何终止主管?

在我的Elixir应用程序中,我有两个名为market\u manager和candle\u manager的应用程序 在appcandle\u manager中,我有以下树状结构: 在appmarket\u manager中,我有一个: MarketManager.ManagersSupervisor是一个可以启动经理的动态主管。当我启动一个管理器时,我得到以下信息: 另外,我启动的管理器将在CandleManager.Bitfinex.RealtimeSupervisor中启动一个名为Can

Elixir配置提供程序

我的任务是在应用程序运行时读取JSON文件并将其存储在配置文件中。我经历过 现在我的配置提供程序代码是 defmodule JSONConfigProvider do @behaviour Config.Provider # Let's pass the path to the JSON file as config def init(path) when is_binary(path), do: path def load(config, path) do # We

删除Elixir中最后一个斜杠后的字符串

我在删除Elixir中URL最后一个斜杠后的所有内容时遇到问题。例如,我有一个URL: http://localhost:4000/admins/new 我想把它改成: http://localhost:4000/admins 我该怎么做呢?您可以使用正则表达式: Regex.replace(~r{/[^/]+$},”http://localhost:4000/admins/new", "") 输出: ”http://localhost:4000/admins" 最安全的方法可能是使用 uri

Elixir 如何在Phoenix live view中获得静态路线?

在我的实时视图模板中,我添加了以下代码段: <script src="<%= Routes.static_path(@socket, "/js/hi.js") %>"></script> 这导致了以下错误: 如何修复此问题?我通过更换 use Phoenix.LiveView 与 在watch_live.ex.Routes只是MyAppWeb.Router.Helpers的别名。您可以一直使用Phoen

Elixir 如何使用render_change结果匹配特定元素?

我正在测试LiveView表单 我得到的结果是一个包含呈现html的字符串 我想断言结果有一些特定的元素。它可以用这样的函数来完成 assert view |> element("#target", "test") |> has_element?() 但它只接受LiveView的实例,而不是html字符串 断言render\u change/2结果将具有特定文本的特定标记的最佳方法是什么?有三种主要方法可以验证这一点 第一个也是最简单的方法是

上一页 1 2 ...  31   32   33   34    35   36   37  ... 下一页 最后一页 共 125 页