Elixir String.replace返回字符串的二进制表示形式

我在学习长生不老药的过程中遇到了一些对我来说没有意义的事情 我正在尝试删除标点符号 "Freude schöner Götterfunken" |> String.replace(~r/[^\s\w]/, "") #=> <<70, 114, 101, 117, 100, 101, 32, 115, 99, 104, 195, 110, 101, 114, 32, 71, 195, 116, 116, 101, 114, 102, 117, 110, 107, 101,

Elixir 插入具有多个关联的模型

我有以下型号: # Foo model schema "foo" do field :name, :string has_many: :bars, App.Bar end # App model schema "bar" do field :name, :string belongs_to: foo, App.Foo end 此表格: # form.html (Foo) <%= form_for @changeset, @action, fn f -> %>

Elixir phoenix新项目创建的依赖项安装阶段出错

我试着遵循凤凰框架的指导。我使用的是Windows 8.1,以下是软件版本: 长生不老药-1.0.4 节点-v0.10.13 npm-1.3.2 当我运行命令mix phoenix.new hello\u phoenix时,在我说Y到获取并安装依赖项之后?[Yn]y在应用程序创建过程中,我注意到控制台中出现以下错误(也可以在npm debug.log中找到) 如果我访问,页面看起来不像,而是如下所示: 我还尝试运行中提到的命令 然而,我得到了另一个错误: ... npm http 200

如何在Elixir中将贴图键从字符串转换为原子

如何将Elixir中的%{foo=“bar”}转换为%{foo:“bar”},您可以使用和的组合 但是,您应该小心转换为基于用户输入的原子,因为它们不会被垃圾收集,这可能导致内存泄漏。看 如果原子已经存在,您可以使用来防止这种情况。使用: iex(1)>string\u key\u map=%{“foo”=>“bar”,“hello”=>“world”} %{“foo”=>“bar”,“hello”=>“world”} iex(2)>对于{key,val}要基于@emaillenin的答案,您可

Elixir 观察者不可用-长生不老药

我正在开发ubuntu 14.04 LTS。我安装了elixir,按照在控制台中运行的以下命令,一切正常 Add Erlang Solutions repo: wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb Run: sudo apt-get update Run: sudo apt-get in

Elixir 使用列表将管道递归到函数

我需要通过一个函数传递字符串列表以返回字符串。目前,我有: @tag_delimiters [" ", "(", ".", "#"] def tag(string) do tag(string, " ") |> tag("(") |> tag(".") |> tag("#") end defp tag(string, delimiter) [head | _] = String.split(string, delimiter) head

Ubuntu的Elixir1.2.x在哪里?

我是按照新手的指示,现在看到这个错误,当我试图运行凤凰 Hex was built against against Elixir 1.0.5 and you are running 1.1.0-dev, please run `mix local.hex` to update to a matching version 我所做的就是从Ubuntu上安装elixir。我觉得在这个阶段我应该在1.0.5,但不知道如何降低我的灵丹妙药的等级 更新:我了解到这两个版本都不是最新版本-我正在寻找1.2.

Elixir 会话未在长生不老药凤凰中保存

我在做一个签到控制器 我将会话设置为: conn = put_session(conn, :user_id, user.id) IEx.pry redirect conn, to: account_path(conn, :show) 当我打印我得到的接头时,它看起来设置在撬线上 ... :plug_session => %{"user_id" => 6}, :plug_session_fetch => :done, ... 然后在我们重定向到的下一个控制器中,我们得到 ge

Elixir 编写自定义断言宏

有时,我必须在Elixir测试中比较多行字符串,当所有行都以内联方式打印时(如line1\nline2\nline3)很难读取 我想编写一个自定义测试断言compare,在两列中显示LHS和RHS 作为起点,我创建了一个名为compare的宏,它与assert相同 defmodule CompareAssertion do defmacro __using__(_) do quote do require CustomCompare import Custom

Elixir 正确使用“内”字的方法;如果;模板中的条件

我正在尝试使用: <%= if @button_effect == "auxNo" || "mainNo" do %> 但只计算第一个值(“auxNo”),而不计算第二个值(“mainNo”)。 我尝试了不同的()组合,但到目前为止,它并没有像我想要的那样工作。 另一种选择是对2个以上的值使用“case”,但同样不能这样做。 我可以举两个例子(if和case)吗?您需要检查or条件下的@按钮效果: <%= if @button_effect == "auxNo" || @

Elixir 长生不老药凤凰提醒功能

我正在玩elixir和phoenix,并尝试实现提醒功能,即未来日期时间的todo,它应该在该日期时间提醒您 我想到了以下简单的解决方案: 1) 使用简单的一对一策略,为每个提醒创建一个进程,该进程将使用超时并在完成后终止 2) 在单个进程中聚合所有提醒,将提醒存储在状态,每隔几秒钟检查一次datetime,并在发出警报后删除 是否有人能详细说明每种解决方案,并给出一个更合理的解决方案,谢谢。我建议考虑规模。 假设您有一台处理x提醒的服务器: 在第一个解决方案中,我们有x个进程,每个进程都有自己

Elixir 外胚层+;Phoenix:如何使用与:id不同的键创建资源路径?

我有一个应用程序,其中资源通过普通ID保存在数据库中。但是,为了防止数据库枚举,在路径和链接中向用户显示的ID类似于UUID。(例如:) 要在Phoenix+Exto中创建基于id的正常链接,只需执行以下操作: 链接到:付款路径(@conn,:show,payment) 但是,这会隐式使用传递到此处的%Payment{}结构的.id字段 使用UUID时,必须执行以下操作 链接到:payment\u路径(@conn,:show,payment.uuid) 或者,在我的应用程序中,UUID在数据库中

Elixir 如何创建自定义错误控制器或挂钩

基本上,我希望能够知道何时向用户提供服务器错误。我看到在Phoenix的早期版本中,可以在路由器的配置中定义一个error\u controller,但在当前版本中,此功能已被删除 我也知道ErrorView能够呈现您自己的错误,但我想做一些不应该在视图中完成的工作(例如发送通知) 是否可以在当前版本的Phoenix中连接您自己的控制器,或者我是否可以捕获并使用其他钩子或事件?@TimPlegrim错误是Phoenix内部的特例。除非有更好的意见,否则我会使用error\u view.ex来实现

Elixir 如何在iex中查看凤凰路线?

如何在iex中查看路由的输出 我知道我可以用mix Phoenix.routes来实现这一点,但我希望以交互方式实现这一点 下面是我想做的一个例子: iex -S Phoenix.server mymodel_path 这给了我一个错误: ** (CompileError) iex:2: undefined function mymodel_path/0 所有url/路径帮助程序都被编译成模块YourApp.Router.helpers中的函数。您可以导入它并使用与模板中相同的参数进行调用

在elixir Exto中动态选择要更新的字段

似乎查询表达式中的更新只接受关键字列表()。那么,如何定义一个函数来动态选择要更新的列呢 大概是这样的: def increment_field(column_name, count) when is_atom(field) do from t in Example.Entity, where: field(t, ^column_name) >= 0, update: [inc: [{^column_name, 1}]] end 我尝试了此操作,但在更新[{^column\u

Elixir中的源代码生成

我目前正在学习/阅读元编程长生不老药 我成功地生成了一个函数,该函数使用宏输入其名称: defmodule MyMacros do defmacro fun_gen(name) do atom_name = elem(name, 0) str_name = atom_name |> to_string quote do def unquote(name) do IO.puts unquote(str_name) end

Elixir Phoenix-Plug.Upload的路由问题

我正在为我正在开发的Phoenix应用程序使用Plug.Uploadstruct,允许上传图像并将其与新闻文章关联。由于某些原因,当我上传图像并提交表单时,flash通知和重定向/渲染不起作用。该应用程序将恢复为一个空白的新表单,即使以前的表单已成功提交,并且数据保留到数据库中。我可以手动返回索引页面,查看文章是否已创建。当我不上传图像时,在提交表单时,一切都会按预期进行 有关表格编号: <%= form_for @changeset, @action, [multipart: true]

Elixir EXTO:基于现有行创建新行

我正在尝试复制带有更改的postgres行链接是现有行。我尝试过各种排列,但无法创建变更集-欢迎帮助 我正在使用这个版本的外星生物 :phoenix_ecto, "~> 3.0-rc"` 这个密码呢 IO.inspect(link) changeset = link |> Map.from_struct # |> Map.delete(:id) |&

Elixir 如何匹配==和=?

玩弄长生不老药。考虑一下这个场景。我有 iex> a = b = 1 #=> a = 1, b = 1 iex> c = true iex> a == b #=> true iex> true = c #=> true 因此,我假设下面的结果将返回true,但得到非法模式 iex> a == b = c ** (CompileError) ... illegal pattern 使用=运算符时,您使用的是匹配

Elixir:测试失败消息

使用Elixir的ExUnit进行单元测试,每个人似乎都对测试失败消息感到兴奋。但是,如果我测试的不是==,我似乎无法得到有用的错误消息 比如说 assert String.contains(my_string, "expected string") Expected truthy, got false 我更喜欢编写测试,这样我的失败信息更丰富,让我能够快速重复他们给出的反馈。有没有办法让测试失败的信息更丰富?e、 g Expected "an unexpected string"

Elixir 移除:来自外部的id。基于id为的结构的变更集

我有一个简单的操作,从数据库检索一个文档,修改一个值,然后尝试将其作为新文档重新插入。换句话说,我想复制数据库中已经存在的文档。毫不奇怪,此操作未通过唯一主键约束: Ecto.ConstraintError: constraint error when attempting to insert struct: * unique: docs_pkey 尝试使用put\u change(doc,:id,null)从变更集中清除id,会产生以下错误: ERROR (not_null_viola

Elixir 无法预加载多层次结构模型

我有一个三级层次模型关系,即,model1属于model2,model2属于model3 我正在尝试为model1预加载model2和model3: my_models = Repo.all(Model1) |> Enum.map(fn (x) -> Repo.preload(x, :model2) end) |> Enum.map(fn(x) -> # error "no function clause matching in

Elixir Phoenix-在不重新启动服务器的情况下重新编译文件更改的本地依赖项

我正在为菲尼克斯开发一个图书馆。我使用mix.exs创建了一个Phoenix项目: defp deps do [{:phoenix,“~>1.2.1”}, ... {:myu包,路径:“../myu包”}] 结束 我希望Phoenix在更改依赖项时自动重新编译该依赖项,而无需重新启动Phoenix服务器。可能吗?我已经尝试安装到Phoenix和my_软件包,并在live_reloadPhoenix配置中添加~r{../my_软件包/lib/*(ex)$},但没有任何效果。正如Justin Wo

Elixir Phoenix Framework空的EXTO迁移文件

我通过《编程凤凰》一书学习凤凰。一切都很好,直到我在尝试通过运行mixecto.gen.migration create\u user来创建一个带有exto的迁移文件时遇到了麻烦。运行上述命令后,我得到 * creating priv/repo/migrations * creating priv/repo/migrations/20170413160546_create_user.exs 在我得到的20170413160546\u create\u user.exs文件中 defmodule

Elixir 测试使用GenServer.cast的代码

我有一个测试,模拟了应用程序范围内的回购。大多数时候,测试都是绿色的。当我使用相同的种子在循环中运行测试时,可能有10%的运行成功,但有一条GenServer终止消息: 15:39:34.632 [error] GenServer ShortTermMessageStore terminating ** (CaseClauseError) no case clause matching: {:error, %Postgrex.Error{connection_id: 11136, message

Elixir “mix-exto.rollback”和“mix-exto.migrate”命令的调试级日志记录

目前,我正在寻找在运行mix任务时添加SQL语句日志的方法。例如,mix-exto.rollback和mix-exto.migrate等命令输出信息: ... 13:45:53.016 [info] == Running Repo.Migrations.AddAmountToUserResources.change/0 backward 13:45:53.016 [info] alter table user_resources ... 但是,我不想看到神秘的altertableuser\

Elixir 主题计数如何影响Phoenix框架中的频道性能?

我目前正在使用Phoenix框架创建一个应用程序,该应用程序使用大量移动设备和后端服务(显然基于Phoenix)之间的双向通信通道 我打算为每个设备创建一个单独的主题,因为设备是由ID定义的,例如设备:2149,设备:1234等 我有以下插座: defmodule Webservice.DeviceSocket do use Phoenix.Socket channel "device:*", Webservice.DeviceChannel transport :websocket

Elixir 通过模板访问外部关系字段

假设我在phoenix应用程序中有这个模型 defmodule Rumbl.Video do use Rumbl.Web, :model schema "videos" do field :url, :string field :title, :string field :description, :string belongs_to :user, Rumbl.User belongs_to :category, Rumbl.Category

在elixir中的引号块外定义函数

我有一个简单的宏,它将函数注入调用模块 defmodule MyModule do defmacro __using__(_opts) do quote do def run do IO.puts "Hello world" end end end end 这可以按预期工作,但由于run函数嵌套在quote块中,因此我无法使用ExDoc添加文档。我还想在外部定义run函数,因为我觉得这样可以使代码看起来更好。大概是这样的: def

Elixir 在Phoenix HTML链接中设置特殊字符的格式

我有一个特殊的用例需要格式化Phoenix HTML链接。该链接可以包含特殊字符,如:和*。例如— CSVLOAD:*out:domain.org:call:4471 使用传统的Phoenix链接生成/CSVLOAD%3A%2Aout%3Adomain.org%3Acall%3A4471作为URL 请告诉我如何更正此问题,使其具有/CSVLOAD:*out:domain.org:call:4471 我的路由器 resources "/instances", InstanceController,

Elixir 更新或合并地图

假设我有这张地图 old = %{stuff: %{old: 123}} 如何更新密钥内容: 我还有另外一张地图: new = %{stuff: %{new: 321}} 对于Map.put,它将覆盖stuff键,我也尝试了Map.merge,但它没有合并,它将用第二个Map覆盖该键 iex(22)> Map.merge(test, new) %{stuff: %{new: 321}} 我想要一些类似于: %{stuff: %{old: 123, new: 321}} 我可以想到两

Elixir System.cmd不是';行不通

无法在windows中工作。我正试图在iex中运行此操作。这就是我得到的错误: (ErlangError)Erlang错误::eOn (elixir)lib/system.ex:605:system.cmd(“echo”、[“hello”]、[]) 这将按预期工作: System.cmd(“cmd.exe”、[“/c”、“echo”、“hello”]) 请注意,您需要调用cmd.exe,因为echo是一个内部命令。您还需要为命令指定/c参数,因为否则echo将永远不会终止并返回 另外,由于dir

Elixir 使用自定义sql而不是表返回一个EXTO模型

在这种情况下,我使用一些自定义sql生成一个中间表。在我的应用程序中,我有一个指向中间表的模型。我有一个不使用中间表的要求,所以我试图弄清楚如何编写一个Ecto模型,以便它在为该模型加载数据时使用自定义sql 重要提示:此模型仅用于读取该表或sql select结果,因此我不必支持insert/update/delete。这将大大简化我的工作 以下是一个假模型,用于我想做的事情: defmodule EventBridge.C3poEvent do use Ecto.Schema imp

使用uuid的Elixir Postgrex

我正在为我的数据库使用Postgrex库,我有以下问题:数据库中的一列的类型为uuid。我正在elixir中使用UUID模块,但每当我尝试将某些内容持久化到数据库时,就会出现以下错误:Postgrex需要16字节的二进制文件,而得到“3c5fda26-ea3b-4c77-8f19-06e106a61eda”。我试着把它存储为 一个普通的字符串,但正如您所看到的,这是不可能的。在将uuid持久化到数据库之前,我应该如何转换它?uuid是一个字符串,但不是“人类可读的字符串”。您所看到的3c5fda

Elixir 在单个事务中插入多个变更集

我有一张桥牌桌: schema "rooms_units" do field(:date_from, :utc_datetime) field(:date_to, :utc_datetime) belongs_to(:room, App.Room, primary_key: true) belongs_to(:unit, App..Unit) end 我有来自我的端点的映射列表,我为每个映射创建了一个变更集列表 [ #Ecto.Changeset< action: n

Elixir 测试长生不老药功能

我有一个产品模式,它有一个UPIunique产品标识符,例如A985748BNG6784C。这是自动生成的唯一产品标识符 我有一个函数upi_generate,它调用另一个外部函数gen_nano_id来生成这个随机唯一id 如果碰巧gen_nano_id生成的id已经生成,则函数upi_generate递归调用自己,直到gen_nano_id生成唯一id为止。从而生成唯一的upi gen_nano_id有时会返回重复的id,为此,我使用递归调用编写了以下代码 def gen_nano_id

Elixir 外部预载(如果不是零)

凤凰n00b在这里 如果模型存在,我需要预加载关联。我写道: model = Repo.get(Model, id) |> Repo.preload([:asso1, :asso2, :asso3]) 但如果找不到模型,它将失败,因为Repo.preload无法忍受将nil作为第一个参数: 协议EXTO.Queryable未为nil实现,给定模块不存在。该协议的实现对象为:exto.Query、Atom、exto.SubQuery、Tuple、BitString 凤凰会是如何做到这一点的

Elixir 使用Phoenix应用程序监视文件系统(文件创建)

在Phoenix应用程序中,我需要在服务器端特定文件夹中创建文件时触发任务 我研究了两种解决方案: 这些是适合这项工作的工具吗?我对这堆东西真的很陌生 谢谢phoenix使用inotify在代码更改时自动重新编译,我认为这是一个很好的起点OK,所以您建议直接使用inotify。不受支持的包装器是否存在?我很好,我不想重新发明轮子。看起来他们正在使用文件系统重新加载,所以看起来你的第一个选择是正确的。

Elixir 错误的返回值模式

社区 我对长生不老药很陌生,面临一个问题。 我正在凤凰城制作一个API并坚持一种模式: {:好的,一些数据}关于成功 {:error,一些数据}错误 我的控制器请求域: with {:ok, some_data} <- Organisation.create(...) do end 与{:好的,一些_数据} 另外,使用大小写过滤返回不是一个选项,因为两个返回都是{:ok,[]} 不确定您的意思,但这确实适用于具有列表模式的案例: case SomeService.get(...)

如何从elixir后端文件调用节点文件

我正在尝试从elixir访问节点文件,但我不知道如何访问它? 我在谷歌上搜索了很多,但找不到实现这一目标的任何线索。请帮助我。我们可以使用系统命令从elixir.ex文件调用节点文件,正如您在下面提到的代码中看到的,它接受两个参数 第一个参数是您需要访问的文件类型,如:“node” 其次,它接受您将在节点文件中访问的其他参数 答:第一个参数应该始终是需要调用的文件的路径 b:其余的根据您的要求可以选择 调用“system.cmd”后,如果在调用文件中出现任何错误,如:“node”,则您将收到一个

localhost:4000在运行发行版时拒绝连接';它是二进制的。如何从混合版本启动的elixir应用程序访问错误日志?

我遇到了一个关于mix-release的问题,我不知道如何调试 以下是我正在做的: 验证我的应用程序在不使用mix-release生成的二进制文件时是否正常工作,方法如下: 访问localhost:4000,它就可以工作了 停止此正在运行的服务器 通过以下方式生成发布: 通过以下方式执行二进制文件: 此时,二进制文件似乎正在运行,但localhost:4000拒绝连接 我可以通过以下方式远程访问正在运行的elixir应用程序: _build/prod/rel/test/bin/

Elixir BadFunctionError需要一个函数

我试图实现一个函数,该函数以列表和函数作为参数,然后将该函数应用于列表的每个元素,然后对结果求和,但每次我在iex中运行程序时,我都会得到错误-**(BadFunctionError)预期的函数,得到:1。我似乎不明白问题出在哪里。我不熟悉长生不老药和函数式编程 defmodule MyList do def mapsum([], _func) do 0 end def mapsum([head | tail], func) do func.(head) + map

Elixir 苦艾酒长生不老药

我在找我的苦艾酒/凤凰服务器。我想了解使用Jason将数据编码为json需要多长时间 我的endpoint.ex文件如下所示: defmodule AssessmentApi.Web.Endpoint do use Phoenix.Endpoint, otp_app: :assessment_api socket "/socket", AssessmentApi.Web.UserSocket # Serve at "/" the stati

在Elixir中,何时在原子名称之前或之后使用冒号?

我正忙着学习长生不老药,了解原子是什么。在屏幕上,它们是这样介绍的: :foo 然而,当我们遇到这样的原子时 list = [{:a, 1}, {:b, 2}] # list of tuples list == [a: 1, b: 2] # evaluates as true 冒号的位置已被替换为显示在原子名称之后 似乎当一个原子是一个键时,冒号的位置就改变了。这确实使代码更容易阅读,因为它很有表现力,但我找不到任何直接的参考来说明为什么会出现这种情况(这不是我正在查看的唯

Elixir 不带控制器的Phoenix router.ex返回响应

有没有一种方法可以在不经过控制器的情况下从路由器返回响应?我尝试过几种不同的方法,但没有成功 scope "/health_check", ZB do get "/" do text conn, "ok" end end get "/health_check" do text conn, "ok" end 通过创建一个名为health_check_router.ex的新文件,我完成了两项工作: defmodule ZB.HealthCheckRouter do use

Elixir :调用Supervisor.start\u child时,mfa无效

我试图在Elixir中启动子进程,但收到以下错误: {:error, {:invalid_mfa, {Worker, :start_link, "MY_TEAM_ID"}}} 我的主管代码如下所示: DynamicSupervisor.start_child(Worker.Supervisor, {Worker, "MY_TEAM_ID"}) 从错误消息中,子规范应该以列表的形式传递其参数。相反,它应该是{:error,{:invalid_mfa,{Worker,:start_link,[“

Elixir 要查看的phoenix传递变量

我有一个将在视图中使用的查询结果,但是当我在视图中调用变量时,我得到了未定义的函数数据/0(因为数据不是函数) 我已经用不同的方式、地图等传递了数据 controller.ex: def new(conn, _params) do data = Enum.map( from(AccountTypeSchema) |> Repo.all(), fn elem -> elem |&

Elixir 如何在另一个模块中使用结构

我使用了import User,它是struct模块,但在运行测试代码时仍然有错误 已尝试使用使用用户和导入用户 defmodule User do @enforce_keys [:username, :password] defstruct [:username, :password] end 在另一个模块文件中 import User newUser = %User{username: username, password: hashpass} == Compilation

上一页 1 2 ...  49   50   51   52    53   54   55  ... 下一页 最后一页 共 125 页