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 framework如何在Ecto模型中设置默认值

我想在Phoenix Framework中为模型设置默认值,我尝试过: def new(conn, _params) do user = get_session(conn, :user) if is_nil user do user = Repo.get_by(User, name: "guest") conn = put_session(conn, :user, user) end changeset = Module.c

在Elixir中,如何遍历另一个循环中的列表?

给定两个列表和第三个列表,其中的值映射到前两个列表的排列,我想创建一个list1的键、list2的键和list3的值的映射。如果我在循环中,如何在某个索引处获取list3的值 使用Enum.at不是解决这个问题的正确方法,我理解-它会在每次迭代中遍历整个列表。如果我尝试[head | tail]=list3,看起来我不能为下一个循环设置list3=tail list1 = [1,2] list2 = [3,4] list3 = 'wxyz' Enum.each(list1), fn i -&g

什么';Elixir';中的:ok init参数的要点是什么;s GenServer示例?

在中,客户端API使用:ok参数启动服务器 def start_link(opts \\ []) do GenServer.start_link(__MODULE__, :ok, opts) end 服务器的init函数要求其参数为:ok def init(:ok) do {:ok, HashDict.new} end 传递和验证:ok有什么意义?如果我们忽略这一点,而是写一些类似的东西,会有什么不同吗 def start_link(opts \\ []) do GenServe

Elixir 将表单变更集数据绑定到隐藏的输入值

我遇到了以下问题。我正在尝试将表单中变更集的一些日期绑定到隐藏字段。但我得到的只是隐藏字段,上面没有任何值 型号: schema "events" do field :name, :string field :address, :string field :location_x, :float field :location_y, :float field :date, Ecto.DateTime field :description, :s

Elixir 不能';“找不到预设值”;es2015“;“相对于目录”;web/static/js“;

我正在尝试构建一个vagrant服务器,用于涉猎elixir和phoenix,但在安装了所有需求和依赖项之后,在运行mix phoenix.server时,我遇到以下错误: 错误:编译“web/static/js/app.js”失败。找不到相对于目录“web/static/js”的预设“es2015” 我不确定这里“预设”的上下文,我希望更有经验的phoenix用户会知道它的意思 一些粗略的谷歌给了我什么,除了它可能与巴贝尔有关 编辑:我刚刚尝试安装我认为丢失的软件包,sudo npm inst

Elixir 在Phoenix中设置数据库种子时出错

我目前正在使用Phoenix 1.0并尝试为我的数据库设定种子。下面的链接指向我的种子文件 运行种子文件后,我得到了这个 ** (TokenMissingError) priv/repo/seeds.exs:73: missing terminator: " (for string starting at line 67) (elixir) lib/code.ex:363: Code.require_file/2 (mix) lib/mix/tasks/run.ex:68: Mix.Tasks

Elixir 我怎样才能匹配“的模式?”;任何字符串;?

在Elixir中,我想对结构中是否存在字段进行模式匹配—如果字段不是nil,或者更好,如果字段是字符串 我知道模式如何匹配字段为零的结构。例如: def run(%Query{expression: nil}) 如何匹配给定字段为任意字符串的结构?您可以匹配: Kernel.match?("" <> rest , "") #true 有效的保护条款列表可在上找到,我已经更新了匹配和保护解决方案。哦,非常有趣。“如果用空字符串连接与原始值匹配,则必须是字符串”,对吗? def ru

Elixir 是否可以在Enum.each中包含ExUnit.test语句

我正在尝试这样做,以便不必手动编写一系列test块: test_cases = %{ "foo" => 1, "bar" => 2, "baz" => 3, } Enum.each(test_cases, fn({input, expected_output}) -> test "for #{input}" do assert(Mymodule.myfunction input) == expected_output end end) 但是

Elixir EXTO:如何使用put_assoc在一次更新中更新和插入关联

我试图编写一个变更集来更新模型并插入关联。我找不到关于如何使用的例子 这将打印出以下错误: ** (Ecto.InvalidChangesetError) could not perform update because changeset is invalid. * Changeset changes %{order_errors: [%Ecto.Changeset{action: :insert, changes: %{id: nil, inserted_at: nil, order_i

Elixir:如何按键过滤地图

我有一个带有键值对的映射和一个带有原子的元组。我想从映射中删除键不是元组中原子的任何条目 m = %{value1: nil, value2: nil, value4: nil} t = {:value1, :value3, :value4} # The result should be %{value1: nil, value4: nil} 这是一个交叉问题。我查看了Enum.filter和MapSet,但没有找到一个优雅的解决方案。这一定是一个常见问题,我们非常感谢您的意见。使用和: 我认

Elixir 如何获得多个关联中第一个的属性?

用户有许多电子邮件,电子邮件有一个属性md5sum。对于给定的用户@user,我希望在user\show中显示图像 模板中的以下代码不起作用: <img src="http://www.gravatar.com/avatar/<%= @user.emails.first.md5sum %>" /> web/models/user.ex defmodule MyApp.User do 使用MyApp.Web,:model 使用Arc.exto.Model 模式“用户”做什

Elixir 添加一个唯一的字段并填充它

我正在使用Elixir和Phoenix,我有一个表,我想在这个表中添加一个新字段,但我希望这个字段是唯一的。因为我的数据库在这个表中已经有一堆寄存器,所以我想用表中另一个字段的值填充新字段 例如,在表it's posts中,我添加了一个新的字段名,它将是uniqe,并且希望所有旧的寄存器用字段email中的值填充字段名 我该怎么做?在迁移过程中我会这样做吗?比如: def change do alter table(:posts) do add :name, :string, nul

Elixir 接收块中的尾部递归

在elixir示例代码中,我看到包含接收块的函数被递归调用,似乎不在尾部位置。例如: defado模块 def循环do 接收do :ping-> IO.puts“收到:ping” 环# IO.puts“收到:砰” 环# 循环#在您的示例中,只有对循环的最后一个调用是尾部递归的。不要在receive块中进行递归调用,只需让receive返回并使用尾部递归调用在已经存在的函数末尾循环即可 defmodule A do def loop do receive do :ping

Elixir 长生不老药-交叉关注点

在长生不老药中执行一些交叉关注的方式是什么?假设我想检查用户是否已取消订阅电子邮件-是否可以在执行任何电子邮件发送功能之前取消订阅?在Elixir文档中找不到任何关于交错其他功能的内容…很像rails中的before_过滤器,但在独立的Elixir应用程序中。可能会发送多封电子邮件-通知、营销、交易等。是否添加每封未订阅的电子邮件?手动检查这些功能中的每一个都是非常必要的。在Elixir中有更好的方法吗?在Rails中,在过滤器之前使用,实际上会导致糟糕的设计。我知道这样编写代码比较容易,但过了

如何在Elixir结构中实现to_查询(数据)

我正在尝试使用Repo.update更新数据库中的现有记录: def subscribe_email(conn, %{"email-address"=>email_address, "shop"=>shop}) do current_record = Repo.all(%Oauth.EmailAddress{email_address: email_address, active: false, shop: shop, verified: :true}) curr

Elixir Phoenix静态内容并不总是加载

在我的应用程序中,我创建了两个java脚本文件——“app.js”和“vendor.js”。这些文件是通过priv/static/js文件夹中的“早午餐构建”正确生成的。但当我用cowboy服务器运行我的应用程序时,有时文件被加载到浏览器中,有时我可以看到404,即我得到以下错误- GET http://localhost:4000/js/vendor.js 404 (Not Found) GET http://localhost:4000/js/app.js 这是我的早午餐配置: expo

Elixir Phoenix框架:如何使用Phoenix.gen任务生成具有类型列表列的EXTO模型?

我想生成一个包含类型为的列的,如下所示: ... users: [ %{ id: 1 }, %{ id: 2 } ] ... 使用任务。你能帮我个忙吗?看来你真正想要的是一段感情。对吗 如果是这样的话,您可能想看看Phoenix是如何做到这一点的。这在很大程度上取决于所使用的DB后端。对于PostgreSQL,只需使用json字段类型。这里是。谢谢你的链接,但我想知道是否有一种方法可以通过phoenix.gen任务生成它。我将编辑这个问题以澄清它。如果它是一个有

Elixir Phoenix中的部分更新和函数签名

我想通过ajax/json创建一个部分更新方法。我的“更新”功能应该是什么样子 def update(conn, %{"a" => a, "b" => b, "c" => c} = params) do # .... end 也就是说,一次只需要这些参数中的一个。我怎样才能具体说明呢?或者应该这样做: def update(conn, params) do # .... end 检查参数是否包含a、b或c?您可以使用模式匹配来定义所有可能性: def upd

Elixir 如何将phoenix API转换为使用--no html标志

我目前正在从事一个使用长生不老药编写的phx/phoenix项目。我使用下面的命令创建了这个项目,并希望该项目成为一个API mix phx.new kegcopr_api --app kegcopr_api --module KegCopRAPI --no-brunch 但是,我在创建项目时忘记指定--no html标志。是否可以将此项目转换为使用--no html标志?或者我需要创建一个全新的项目吗?如果您还没有开始使用应用程序,最简单的方法就是删除该项目并重新开始 如果您已经启动了它,您

如何通过Erlang在Elixir中创建tar文件

我多次尝试创建.tar存档的目录。但我没有成功 创建.tar格式的示例代码。(与erlang一起) 但我的考试一直不及格 请帮助我创建存档文件(.tar)Erlang的erl\u tar。create/2需要一个字符列表作为第二个参数,但您传递了一个二进制文件列表。请尝试: {:ok , filenames} = File.ls("/Users/shahryar/Desktop/test") :ok = :erl_tar.create("test.tar", Enum.map(filenames

Elixir 早午餐不为Phoenix 1.3项目中的VueJS组件编译CSS?

在迁移到Phoenix 1.3之后,我很难让早午餐构建VueJS组件 我已经生成了一个新项目 我已经使用NPM安装了vue早午餐集成: (在此处找到): 我已经更新了brunch-config.js以构建类似的Vue组件(我尝试了到components.css的两种路径): 我在“资产/组件/我的应用程序.vue”中添加了一个组件 但是在构建项目之后,“components.css”不会出现在“priv/static/css/”中 我试过更新早午餐,运气不好 我错过了什么 有关更多上下文,请参阅

Elixir 从带条件的循环向列表中添加项

我试图将一些项目添加到列表中,但前提是条件为true。 我的函数实际上是在条件为false时存储空数据 hit_list = for {_mob, %{id: id}} <- get_mob_list(state.mobs) do if condition do id end end 您可以使用for这样做: hit_list = for {_mob, %{id: id}} <- get_mob_list(state.mobs), condition do id

Elixir Concat两个列表,地图在长生不老药中更有效

我有两张地图列表: list1 = [ %{amount: 1, id: 112006}, %{amount: 1, id: 78798}, %{amount: 6, id: 92572}, %{amount: 1, id: 89750}, %{amount: 1, id: 81418}, %{amount: 3, id: 92062}, %{amount: 1, id: 82373}, %{amount: 1, id: 92856}... ] 及 列表1包含30000多个地

Elixir 是否可以将字符串插值与管道操作符一起使用?

例如,当通过几个管道步骤对字符串进行变异,并希望将其添加为字符串变量插值时 "Hello-World" |> String.downcase |> String.slice(0..4) |> String.to_atom("var_#{&1}") 而不是: str = "Hello-World" |> String.downcase |> String.slice(0..4) String.to_atom("var_#{str}"

重复模块:';Elixir.Poison.Encoder.Map';在毒药混合释放中指定`

我在一个伞形应用程序中工作,该应用程序使用Poison对Json进行编码和解码。为了对我的ecto模型进行编码,我编写了以下实现: def defimpl Poison.Encoder, for: Any do def encode(%{__struct__: App.Models.Task} = struct, options) do struct = if struct.geom do {lon, lat} = struct.geom.coordinates

Elixir中的动态代码

我正在尝试在我的回购中对此表进行查询: user_id | create_author | delete_author | update_author | read_author ---------------------------------------------------------------------- 1 | true | false | false | true 在我的代码中,我将列的名称作为字符串获取(

Elixir 如何配置以在phoenix中重新编译

我正在使用phoenix创建服务器并使用编辑器VSCode 当我启动服务器:mix phx.server并且我有代码更改,它不会重新编译,我必须关闭并再次运行 是否应该在可以自动重新编译的地方设置扩展或配置 文件dev.exs config :jwtuser, Jwtuser.Endpoint, http: [port: 5000], debug_errors: true, code_reloader: true, check_origin: false, watchers:

Elixir 动态预加载表

我在这个查询中动态预加载表 assoc_models = [:example] from( q in queryable, preload: ^assoc_models ) 结果是: #Ecto.Query<from j in TestModel.Join, preload: [[:example]]> #exto.Query assoc_模型中可以有任意数量的表 有一对额外的支架后预加

用Elixir编写EXTO查询

我已根据从客户端传入的参数列表创建了一个查询列表: [ #查询, #异位查询 ] 但是,我需要遍历这个列表并组成一个查询,它是所有查询的总和。。 (下一个查询的输入是当前查询等) 有人能给我指出正确的方向吗。非常感谢 我知道我可以一个接一个地编写查询。但是我正在从客户端获取参数,并且有一个很长的字段列表(品牌、类型等),我不想对每个字段进行单独的查询。除非打开单个查询结构并检查其底层实现,否则不可能也不建议像这样在EXTO中加入查询。相反,您应该尝试将它们分解并使其可组合 EXTO使您能够非常

Elixir GenServer句柄\调用回调返回类型

我正在实现一个GenServer,我很困惑 我知道handle\u cast是异步的,这意味着调用方没有等待回复,我们返回的元组如下:{:noreply,new\u state} 我注意到,我们也可以从handle\u call返回相同的元组。这是否意味着如果我有一个返回{:noreply,new\u state}的句柄调用,它不会返回任何东西,而是同步的?调用方的流程将等待GenServer.call命令,然后在handle\u call功能完成后继续?无论何时调用GenServer.call

Elixir 如何测试体外迁移

我最近在Phoenix应用程序中编写了一些Exto迁移。 但是,我总是手动测试迁移 随着我们的迁移变得越来越复杂,并且需要更改实时系统上的数据,我真的希望在部署它们之前编写自动化测试 自动测试需要: 将数据库重置到迁移之前的某个点 运行比要测试的迁移更早的迁移 准备数据并将其插入数据库 运行迁移 验证结果是否符合预期 清理数据库以确保即将进行的测试不会与数据冲突 我们正在使用ExUnit和ESPE,但我还没有找到一种方法,在特定测试之前只应用一些迁移 有没有一种方法可以为异位迁移编写自动测试?只

Elixir 如何在同一页面上使用多个变更集

我必须同时更新3个表。 一个页面有3个变更集 如果我为发布3个带有表单的chagnesets,我如何编写代码? 下面是三个表 --------- members --------- id name ---------------- member_details ---------------- member_id address phone_no -------------- member_items -------------- member_id item_id 或者另一种

Elixir 如何将插件加载的数据传递给LiveView组件

嗨,我使用不同的域名加载不同的数据集。我目前正在使用自定义插件根据主机名加载正确的域id。例如,在路由器前面的我的endpoint.ex中得到了这个: plug WebApp.DomainCheck socket "/live", Phoenix.LiveView.Socket, websocket: [connect_info: [session: @session_options]] ... plug WebApp.Router 及 现在这适用于正常的视图,因为我在每个

Elixir 无法安装mix

我已遵照以下指示: 但当我尝试执行mix时,我看到以下错误: ╰─❯ mix --help ** (Mix) The task "deps.loadpaths" could not be found 及 如何修复它?您可能有不兼容的Erlang/Elixir版本 使用asdf安装可能是最可靠的方法 确保您阅读了Erlang asdf插件的“在asdf安装之前”部分。您可能有不兼容的Erlang/Elixir版本 使用asdf安装可能是最可靠的方法 确

Elixir 如何在Phoenix Live View中处理嵌套表单操作?

因此,我遵循本教程创建动态表单: 好的,这是我实际的输入帮助程序。ex: defmodule Conts.InputHelpers do @moduledoc """ Define <%= input f, :pass, type: :password_input %> syntax to create dynamic form inputs """ use Phoenix.HTML alias

为什么在Elixir中定义符号的语法不';t使用;解除信号;?

我正在阅读长生不老药教程中关于西格尔的内容。 我希望定义sigil的语法使用“defsigil”,就像“defstruct”、“defprotocol”等一样。 但事实并非如此。 为什么? 符号只是调用特定方法的一种奇特方式。请看关于的部分。基本上,~x/things/options与sigil_x(things,options)相同。所以你可以写这样的东西: defmodule Thing do def sigil_u(string, _options) do string |&g

Elixir 当项目作为混合dep包含时,防止包含混合任务

我正在编写的Elixir库有两个自定义混合任务,一个用于将我的库作为其项目依赖项的用户,另一个用于仅在我的项目中使用 这里的问题是,在用户将我的任务添加为dep后,他们的项目中的两个混合任务都可用 我如何防止这种情况?我试图在我的Mix配置中避免使用包:[files:[etc]]中的任务,但在通过git将我的库指定为dep的测试项目中仍然可以使用该任务。目前Mix实际上并不直接支持私有任务。以下是几个选项: 在mix.exs中定义它(例如,作为别名),或者在tasks/my_task.exs和

Elixir 更改mix显示的任务名称

您好,我有一个类似的模块: Mix.Tasks.MyModule.Release.Deploy 当我运行mix help时,它显示如下: my_module.release.deploy 我怎样才能把它改成 mymodule.release.deploy 我尝试使用: 但是没有成功。我错过了什么吗?的确。CamelCase被翻译成小写,两个大写字母之间带有下划线。如果你想要mymodule,你最好先写mymodule。的确如此。CamelCase被翻译成小写,两个大写字母之间带有下划线。如

Elixir 获取嵌套列表项的惯用长生不老药?

我有一个嵌套的列表项 [["Bearer"], ["xxxyyyxxxx123"]] # parsed from "Bearer xxxyyyxxxx123" 我只需要得到“xxxyyxx123”的值 我现在正在这样做,但我不认为这是惯用的 token = Regex.scan(~r/^Bearer|\w+/, header_content) |> List.flatten |> List.last 保持相同的Regex.scan/2调用的惯用方

Elixir 安装cassandra_Exto-Elixer phoenix框架时出错

在安装cassandra_ecto并启动服务器时,遇到以下错误: ** (Mix) Could not start application cqerl: could not find application file: cqerl.app 之后无法继续。我个人没有使用过cassandra_Exto库,但此错误通常意味着应用程序缺少依赖项。您的deps功能中是否列出了cqerl库 def deps do [ {:cqerl, github: "matehat/cqerl", tag:

Elixir Can';t在插件测试中设置cookies

我有一个插件,负责从作为令牌的请求中获取cookie并验证它 我目前在设置我的测试以通过conn内部的cookie时遇到问题 setup do token = "some string" conn = conn(:get, "/") |> put_req_cookie("session_token", token) %{conn: MyPlug.call(conn, [])} end test "user passes thr

从Elixir中的列表中拾取地图的属性

有没有办法从elixir中的列表中选择地图的属性 map = %{ a: 1, b: 2, c: 3 } do_something(map, [:a, :b]) = %{a: 1, b: 2} 您需要Map.take/2: iex> Map.take(%{a: 1, b: 2, c: 3}, [:a, :b]) %{a: 1, b: 2} 你刚才在文件中看到了。谢谢!

在Elixir中将变量作为参数传递

我需要将模块属性作为函数参数传递,但是它不适用于我,并且会引发错误。这是我的密码: defmodule Waiter do @defaultInterval 1 @defaultTimeout 10 def wait(condition, timeout, interval) do IO.puts "condition #{condition} timeout #{timeout} interval #{interval}" end def

Elixir Kernel.apply/2和Kernel.apply/3替代方案?

我正在创建一个动态执行函数的任务。这个函数每次都不同,参数的数量也不同([1,“hi”,:a]),所以我使用的是内核.apply/2 defpcreate_任务(f,args)do Task.async(fn->apply(f,args)end) 结束 但是我无法将其用于私有函数(使用defp声明): create_task(&__模块&.my_private_fun/3,args) 如果您要传递的函数是在模块中使用defp定义的,那么您无法从外部调用它。但如果它在同一模块中,您仍然可以调用它

Elixir 函数参数应适用于字符串和unicode

我正在按顺序计算字符串中出现的次数 def count(strand,nucleotide) do Enum.count(String.graphemes(strand),&(&1==List.to_string([nucleotide]))) end 如果我将strand作为“AAA”传递,它可以正常工作,但如果我像“AAA”一样传递,即charlist,它将失败 给我 **(FunctionClauseError)String.Unicode.graphemes/1中没有

Elixir “任务”;“文件”;找不到。你的意思是“什么?”;做什么;?

如何为mix项目生成文档?它如何做到这一点 使用Elixir mix项目的程序: 我通过mixnewgreeter命令生成一个项目 我在greeter.ex文件中添加了一块注释 我将依赖项添加到mix.exs文件中 我尝试通过mix docs 指挥部 混合帮助无法在可能选项列表中提供文档任务: mix # Runs the default task (current: "mix run") mix app.start # Starts al

Elixir 分离文件名称和提取时间长生不老药

在这种模式下,我有将近10万个文件 [“192.168.1.225_01_20190316070000734_TIMING.jpg”, “192.168.1.225_01_20190316071000736_TIMING.jpg”, “192.168.1.225_01_201903160720000736_TIMING.jpg”, “Camera_1_615696208_20190318075200317_TIMING.jpg”, “Camera_1_615696208_201903180820

Elixir (FunctionClauseError)CheckersgameWeb.GameShannel.handle\u/3中没有匹配的函数子句

我目前正在凤凰城制作一款跳棋游戏,它将击中一个功能性的障碍。错误由我在此处提供的游戏频道中的handle_in函数引发: def handle_in("click", %{"click" => ll}, socket) do IO.puts("whatever") end 关于我们做错了什么有什么想法吗?下面是一个例子: defmodule示例do def run do Demo.handle\u意外,foo,bar 终止 def手柄、地图、插座do 伊奥·普茨瓦特 终止 终止

Elixir 如何下载位于资产文件夹下的文件

如何正确下载位于静态文件夹下的文件 我知道使用html,你可以使用类似的东西,但在Elixir中它不起作用,而是下载了一个名为phoenix.png的文件,但该文件无法打开,浏览器显示失败-没有文件 我尝试过使用类似的东西,但仍然不起作用。我发现GET/image/phoenix.png(MyTestsWeb.Router)没有找到路由 这是我的git存储库,我在这里举了一个例子: 你能帮忙吗?看起来像是打字错误image/phoenix.png->/images/phoenix.png仍然无法

上一页 1 2 ...  73   74   75   76    77   78   79  ... 下一页 最后一页 共 125 页