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 避免Eex中的JSON转义

我正在尝试将一些长生不老药数据传递到Javascript中,并使用Jsex将其序列化: <script type="text/javascript"> var myData = <%= JSEX.encode! my_data %>; </script> var myData=; 但输出似乎是转义的,如[&Quot;a&Quot;,1]。 有什么方法可以绕过它吗?如果你使用的是Phoenix,你可以使用它来防止逃跑。在以下观点中: <%= sa

Elixir “@typet::%\uuuu MODULE\uuuu{}”在长生不老药中是什么意思

在std长生不老药包装中有很多这样的行 @type t :: %__MODULE__{} 我知道@type注释用于在@spec注释中别名type的短符号,但这一行用于没有@spec注释的模块中 此注释的目的是什么?首先,默认情况下,使用@type指令指定的类型是public(与使用@typep定义的类型相反)。这意味着,即使模块中没有规范,定义类型也允许其他开发人员在编写其函数时使用该类型: @doc "Computes the length of a URI." @spec foo(URI.

Elixir 退出IEX的另一种方式,而不是ctrl-C

我知道我们可以使用control-C退出IEX控制台。我很好奇是否有一个命令可以在控制台中键入,也可以执行相同的操作。看起来像 System.halt 同样有效。我一直认为ctrl-G 然后是q 辞职 是退出iex外壳的官方方式 请参阅IEx文档,其中还显示了如何在备用shell等之间切换。我可以想出3种退出IEx shell的方法: 所提到的命中两次或一次,然后是q,然后是 然后q+ 最后,System.halt 但是,System.halt和其他方法之间有区别 也就是说,System.h

如何在Elixir中获取控制台输出中的行号

我需要获取IO.puts或IO.inspect或elixir控制台上出现的任何其他类型的输出的行号,以便进行调试。这有内置的功能吗?或者有没有其他简单的方法可以达到同样的效果 注:关于IO.puts的行号,我指的是在代码中写入IO.puts的行。您可能正在寻找,这将使您能够访问当前文件和行(以及其他内容)。你可以这样做: Logger.debug("#{__ENV__.file}:#{__ENV__.line}: #{inspect some_value}") 编辑:正如José在评论中所建议

Elixir 观察者工具:进程出现在进程列表中,但不出现在应用程序图中

我用iex-S mix打开了我的项目,在里面启动了我的应用程序,然后运行:observer.start()查看我的流程。问题是,我的应用程序的进程不会显示在“应用程序”选项卡下,但会显示在“进程”列表中。 为什么会这样?原来我忘记定义了。唯一会出现在observer图形应用程序浏览器中的流程是通过proc\u lib函数启动的流程。这是所有OTP使用的。如果只使用普通的spawn调用,它们仍然会出现在完整进程列表中。这是因为系统不知道如何将这些进程放入应用程序树中,因为proc_lib是从哪个

Elixir Phoenix框架-每条路线的页面标题

在Phoenix框架中,有一种基于路由/路径设置页面标题的常用技术。或者这只是在我的路由函数的正确位置调用assign(:page\u title,“fred”)的问题 更新 我最终实现了@michalmuskala解决方案的一个变体。我向上传递操作名称,而不是@view\u template: <title><%= @view_module.title(action_name(@conn), assigns) %></title> 然后在视图模块中,代

Elixir 基于用户输入调度作业

我正在用Phoenix和Elixir构建一个web应用程序。我想实现一个调度系统,例如,我希望用户能够说“我希望在这个日期和时间运行这个作业,我希望它每周运行一次” 我的问题是,系统如何知道is必须在用户指定的日期定期运行作业 我可以每隔一个小时左右轮询一个数据库,查看是否有任何作业需要运行,但这会导致问题,例如,作业的运行时间会晚于用户希望的时间 谢谢,非常感谢您的帮助 看一看。它应该给你你想要的东西 您的web应用程序有多少潜在用户?@Aetherus让我们先假设1000个,这并不多。您可以

Elixir 创造量子长生不老药工作机会

我想创建一个quantum elixir作业并控制它的执行时间。我从这个开始: Quantum.Job.new(task: fn -> IO.puts "Hello!" end) 但它抛出了一个错误: ** (KeyError) key :run_strategy not found in: [task: #Function<20.99386804/0 in :erl_eval.expr/5>] (elixir) lib/keyword.ex:371: Keyword

Elixir 未安装长生不老药

我刚刚克隆了一个Elixir/Phoenix项目,但无法运行任何混合任务。我一直得到未安装的elixir 1.5.1。我不明白,因为我安装了长生不老药。如果我从项目之外的任何其他文件夹运行elixir--version,我可以看到我正在运行elixir 1.5.1。就在这个项目中,我一直得到一个错误,elixir没有安装 有什么问题吗?mix.exs文件的内容如下所示: 项目组 def project do [ app: :real_world, version: "0.0.1",

Elixir-在Linux和Windows上使用不同的文件路径保存

我有一个在Linux上开发的项目,但对于生产来说,该版本是在Windows机器上编译和构建的,然后传输到Windows服务器 在我的Linux机器上,我喜欢这样 path = "pdf/#{item.id}.pdf" File.cp(upload.path, path) 但在窗户上,那将是 path = "pdf\#{item.id}.pdf" File.cp(upload.path, path) 这两种情况都有写的方法吗?使用: 您也可以在Windows上使用:/。 path = Path

如何使用Enum.map以与Elixir中其他元素略有不同的方式修改集合的第一个元素?

我有一个“struct”列表。我正在使用Enum.map(…)修改它们。我想要的是仅以稍微不同的方式修改第一个元素,其余元素应以标准方式修改。这样做的最佳方式是什么 我尝试过用一系列数字压缩我的结构列表,对于这样一个简单的任务来说,它看起来异常复杂。假设你有一个列表和两个函数分别modify1和modify2,你可以将列表分为头和尾,应用转换并将列表粘回: 带有[h | t]修改1.(h) {t,{}->修改2.(t) (完) 您可以使用索引上的匹配,然后调用Enum.map进行必要的修改。像

Elixir 长生不老药';s ExUnit,是否可以只运行一个测试?

在python的nosetests中,您可以通过调用它的类,然后调用测试名称来指定运行一个测试,我们如何使用Elixir的ExUnit来实现这一点?您现在可以执行混合测试路径/to/test.exs:13,其中13是测试行。Amrita似乎可以一次运行一个特定的测试: 我今天在IRC上问了同样的问题,他们回答说(谢谢Nhu和José),现在我可以用mix来做了 您可以使用以下各项运行单个测试: mix test path/to/file_test.exs:42 如果使用Vim,可以创建映射。向

Elixir 使用字符串查询Repo

我正在使用Phoenix和Exto通过主键查询数据库中的单个记录。所有文档/示例都显示了在Phoenix控制器中的用法: def show(conn, %{"id" => id}) do m = Repo.get(MyModel, id) ... end 但是,Phoenix中的所有参数都是字符串,因此这会抛出一个**(exto.InvalidModel)模型App.MyModel验证失败,因为字段id的类型为string,但类型应为integer。我一直在我的控制器中解决这一

Elixir IEx-文件路径的类似bash的自动完成

IEx自动完成可以很好地与模块和函数配合使用。我想知道是否有可能在IEx助手函数(c、cd等)中获得路径的自动完成,例如: iex(1)> import_file("file<TAB-key> iex(1)>导入_文件(“文件 在bash中,大多数命令都遵循“命令选项路径”的模式,因此很明显,由于上下文的关系,autocomplete应该搜索路径。import\u file是一个函数,它以字符串作为参数。IEx不知道它是路径字符串还是其他字符串,因此编写autocom

在Elixir/Phoenix(0.10.0)中,如何根据版本中的端口环境变量设置端口?

在config/test.exs中,我有以下几行代码: config :youli, Youli.Endpoint, http: [port: System.get_env("PORT") || 4001 当我运行mix-release,卸载该版本,并运行端口为4242的应用程序时,它将在端口4001上运行。稍微放大一点,我发现在releases/0.0.3/sys.config中是这样硬编码的 如何让我的发行版使用环境中设置的端口运行?而不是系统。获取环境(“端口”),使用{:Syste

Elixir 如何在Phoenix框架中显示字段下的错误消息

如何在字段下而不是表单顶部显示表单错误 我如何制作这样的东西: <%= text_input u, :username %> 要呈现类似的内容,如果此字段中有错误-> <div class="field-with-error"> <input type="text"> <span class="error">This username is already taken</span> </div> 此用户名已

Elixir 在exrm版本中加载文件

我使用一个html文件作为模板,使用以下代码,在开发模式下工作(不是在exrm版本中): 当版本与exrm打包时,此相对路径不再有效,并且找不到该文件。有没有更好的方法来声明路径,以便在将其转换为发行版时不会弄乱它?使用path.join(“{:code.priv\u dir(:your\u app\u name)}”,“static/templates/receipt\u template.html”)获得正确的路径。我建议始终使用它,因为它保证在任何环境下都能工作 {:ok, templat

Elixir 如何在Phoenix select字段中显示模型的所有记录

我有以下型号 页面 类别 我在page\u controller.ex的new操作中有以下代码 def new(conn, _params) do changeset = Page.changeset(%Page{}) categories = Repo.all(Category) render(conn, "new.html", changeset: changeset, categories: categories) end 我在page/new.html.eex中为selec

&引用;无效的格式字符串";使用Elixir中的Timex分析日期字符串时出错

如果我错过了一些明显的东西,请原谅,我是长生不老药的新手 我在使用Timex进行日期解析时遇到了问题,所以我决定从它的测试套件中复制一行,并在iex中运行它,即使这样也没有成功 下面的解析调用是从中复制的,只是通过在Timex模块名称前加前缀进行了修改 Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:10] [kernel-poll:false] Interactive Elixir (1.2.4) - p

Elixir 如何在模式中定义变量默认字段值?

在EXTO中,您可以通过指定诸如field:name、default:john之类的字段来提供默认值。在文档中,声明此默认值存储在编译时,并且Date.now或UUID.generate之类的东西不起作用 我的问题是:我们如何创建这些变量默认值? 可以说“在创建结构后设置值”。但是,在使用虚拟字段时,这是不可能的。当你使用e。GRepo.allMyModel或任何其他查询命令,将虚拟字段设置为其默认固定值 如何创建变量架构字段默认值?这是不可能的。EXTO只定义一个结构,Elixir结构在编译时

Elixir 以变量为键的地图上的模式匹配

如何在具有字符串键的地图上进行模式匹配 iex(1)> my_map = %{"key1" => "var1"} %{"key1" => "var1"} iex(2)> %{aa => bb} = my_map ** (CompileError) iex:2: illegal use of variable aa inside map key match, maps can only match on existing variable by using ^aa

Elixir Edeliver-成功部署后无法访问端口4000

我正在尝试使用edeliver部署一个简单的phoenix应用程序。昨天,经过多次斗争,它成功了。不管怎样,今天我做了一点,试着 发布新版本: mix-build-release--branch=production#看起来不错 从发布到生产的混合版本#看起来不错 重新开始生产#看起来不错 如果在我的服务器上运行ps aux,我可以看到: root 29773 0.0 0.0 7620 292 ? S 08:58 0:00 /var/www/elix

Elixir 向Phoenix群集动态添加节点

我最近读了Chris McCords关于在集群上分发Phoenix应用程序的文章 我想知道是否可以通过net\u内核:connect\u node/1将节点动态添加到现有集群中。它能工作吗?在教程中,Chris使用了配置文件…是的,这是可能的 在一个单一的答案中详细介绍太多了,因此这里有一些链接可以帮助您:

Elixir 重构控制器中的案例结构

我在控制器中有以下代码。显然,它需要重构。但我不知道如何解决它。如何重构它,使所有重复的代码部分消失 case Repo.insert(changeset) do {:ok, social_media_account} -> case social_media_account.provider do "Twitter" -> conn |> put_flash(:info, gettext("A")) |&

Elixir 在何处放置共享控制器代码

我有一个共享的控制器功能,我希望在控制器之间重用该功能: def render_unprocessable_entity(conn, changeset) do conn |> put_status(:unprocessable_entity) |> render(ExampleApp.ChangesetView, "error.json", changeset: changeset) end 问题:我可以把这个放在哪里?我试着把它放到control

Elixir插入记录给出未定义的方法

我正在努力实现:创造行动。这是我的代码库 defmodule Rumbl.Repo do use Ecto.Repo, otp_app: :rumbl end 对于User.ex模型 和我的控制器: defmodule Rumbl.UserController do use Rumbl.Web, :controller alias Rumbl.Repo alias Rumbl.User require Logger def new(conn,

Elixir 将映射转换为URI查询字符串

我有一种长生不老药地图: m1 = %{a: 1, b: "fsfd", c: 123} 我想将其转换为URI的查询字符串 a=1&b=fsfd&c=123 我该怎么做?我试过这个: Enum.reduce(m1, fn({k, v}, acc) -> "#{acc}&{k}=#{v}" end) 但是它不起作用,因为acc没有得到预期的模式匹配 代码的问题在于您使用的是而不是。传递的函数在reduce/2中执行n-1次,第一个值用作累加器的初始值 因此,对于

Elixir 如何为ex_admin和phoenix定义正确的名称空间>=1.3.0-rc

升级后,ex_admin的所有路由都不起作用。 调整配置,路径在utils.ex中指定。 这也可能对其他库有所帮助 config/config.exs Phoenix 1.3.0-rc function MyApp.Router.Helpers.admin_path/3 is undefined config :ex_admin, repo: MyApp.Repo, module: MyApp.Web

Elixir中的报告工具

我们是否有像jasper/birt这样的报告工具来用Elixir或任何API创建报告 我试着在谷歌上搜索,没有找到任何。这里任何能帮忙的人。 感谢不熟悉jasper/birt的人-他们是做什么的?你在寻找什么功能?我在寻找一个报告工具或api,它将帮助我在elixir中创建报告。e、 g.我们有java中的jasper、.net中的crystal reports等@nietakii需要向我的客户发送报告,我使用的是phoenix framework。请提供您提到的工具的链接。IIRC Jaspe

Elixir 查询嵌入了';t使用插值返回结果

我在Postgresql jsonb中有一个Embeddes_many字段,我尝试使用如下片段查询它: def find(key, val) do q = from p in Person, where: fragment("meta_tags @> ?", ^"'[{\"#{key}\":\"#{val}\"}]'"), select: p Repo.all(q) end 我不明白为什么片段(“meta_tags@>'

Elixir 长生不老药-从lambda获取价值

考虑以下代码段: def capture Functor.function(fn(value) -> ??? end) ??? end 假设lambda确实被调用了一次 捕获lambdafn(value)的第一个参数的首选方法是什么,它可以是capture方法的返回?这里需要某种形式的可变状态。最简单的方法是使用代理: defmodule Functor do def function(f) do f.(:hey) end def capture

Elixir GET/api处的Poison.EncodeError无法对值进行编码:{nil,“paths”}

当试图呈现json数据时,我的控制器中出现以下错误 Poison.EncodeError at GET /api unable to encode value: {nil, "paths"} web/controllers/api_controller.ex:1 App.ApiController.action/2 在四处搜索后,我尝试如下方式创建我的模型: defmodule App.Api do use App.Web, :model @derive {Poison.Encod

在elixir中重复字符串n次

我需要制作一个定义长度的字符串。在ruby中,我将使用: str='a'*5 如何在长生不老药中实现同样的效果?您可以使用: 你可能想让示例代码更接近他的问题@dogbert:str=String.duplicate(“a”,256):)你也可能想让示例更接近OP,但在平板电脑上更易读:String.duplicate(“a”,5):)@mudasobwa是的,我认为这样更好。:)将我的更改为匹配:)更好的建议@mudasobwa! iex(1)> str = String.duplica

使用timex和elixir创建季度间隔

我正在尝试创建季度间隔,类似于使用此代码创建月度间隔的方式 [from: start_date, until: end_date, right_open: false] |> Timex.Interval.new() |> Timex.Interval.with_step([months: 1]) |> Enum.map(&Timex.format!(&1, "%Y-%m", :strftime)) 时间间隔应为1月至3月第一季度、4月至6月第二季度、7月至9

Elixir,将新项目合并到列表中

一般来说,对于长生不老药和函数式编程来说是新的。我希望将一个新项目合并到现有项目的列表中。当列表中已经存在新项的键时,我需要更新列表中相应的项,否则我会将新项添加到列表中 我已经提出了以下建议,但似乎有点笨重,有没有更好的方法 非常感谢 defmodule Test.LineItem do defstruct product_id: nil, quantity: nil end defmodule Test do alias Test.LineItem def main do

Elixir 空地图保护不工作

为什么这个警卫不工作 def method(stuff, %{}), do: stuff 我必须检查地图的大小才能让它正常工作 def method(stuff, data) when map_size(data) == 0, do: stuff 第一个保护不应该匹配空映射吗?映射模式匹配,即使该值包含模式中不存在的任何键。额外的键将被悄悄忽略。检查map_sizemap==0是检查参数是否为空映射的正确方法。映射模式匹配,即使该值包含模式中不存在的任何键。额外的键将被悄悄忽略。检查map\

Elixir 长生不老药:在主管内部获取流程pid

我有两种由主管启动的流程:一些工人和一个工人需要向其报告的控制器。为此,他们需要知道控制器的pid 我曾考虑过两种方法,但都不管用 立即开始 其原理是一次启动所有过程,然后检索控制器的pid,然后将其发送给所有工人,以便他们可以开始工作。代码如下所示: defmodule XYZ.MySup do use Supervisor def start_link(opts) do ... end def init(:ok) do children = [ {

Elixir Phoenix.View.render_to_字符串如何使用布局渲染模板?

模板的渲染效果良好: html = Phoenix.View.render_to_string(MyApp.BillingView, "receipt.html", %{organization: organization, transaction: transaction}) …但我想用布局渲染此视图。如何实现这一点?解决方案:Phoenix.View.render_to_string(MyApp.BillingView,“receipt.html”,[organization:organi

Elixir Phoenix mix phx.gen.html生成的坏链接

我使用phx.gen.html生成了几个控制器、模板等,这些模板包含构建超链接的代码,如下所示 <span><%= link "New Priority", to: priority_path(@conn, :new) %></span> 这生成的链接是复数的,即优先级,但控制器和其他项目都是单数的,因此链接不起作用 首先,我如何影响优先级路径,和/或第二,我如何防止这种情况再次发生?我怀疑您没有将路由添加到router.ex文件中 资源/优先级,优先级控制

Elixir 在长生不老药中流动的速率限制

作为数据流的一部分,我想以每秒10次的请求下载一个文件列表。 睡线是最好的方法吗 case ExRated.check_rate(@endpoint, scale, limit) do {:ok, _} -> request.() {:error, _} -> :timer.sleep(1_000) rate_limit_access(request, opts) end 有没有可能做一些事情,比如用gen_stage做了什么,或者用Flow做速

如何使用elixir测量磁盘大小?

我对长生不老药和凤凰都是新手。我发现在erlang中,可以使用检查磁盘空间。我在elixir中找到了另一个函数/语句来检查总内存使用情况: > :erlang.memory(:total) 我的问题是如何检查当前系统的磁盘大小/空间?disksup模块属于操作系统应用程序,而操作系统应用程序又依赖于sasl应用程序。因此,您需要在调用之前启动这些应用程序 > :application.start(:sasl) > :application.start(:os_mon) >

Elixir 使用查询参数筛选json结果

我尝试创建一个RESTAPI,允许用户使用用户名和电子邮件过滤或创建请求 第一个URL返回完整的用户列表 第二个应该对数据进行拟合 我尝试用两种方法来解决这个问题: def index(conn, _params) do users = Res.list_users() render(conn, "index.json", users: users) end def search_user(username, email) do Repo.one(fro

Elixir 如何更新与EXTO的多对多关联

我有一个Phoenix应用程序,它有两个资源,具有多对多关系。为了简化,我们把它们称为post和tag。当我从头开始创建一篇文章时,我可以将现有的标记与之关联。我还可以编辑一篇没有标签的文章,将标签与之关联。但是,每当我想编辑与帖子相关联的标签时,就会出现以下错误: you are attempting to change relation :tags of MyApp.Posts.Post but the `:on_replace` option of this relation is set

Elixir 控制器和插入式长生不老药凤凰有什么不同?

来自Node.js/Express后台,我看到plug基本上等同于Phoenix框架中的中间件。在阅读了控制器之后,我注意到控制器也是一个插头,它本身可以包含一个或多个插头 我对插头和控制器的使用感到困惑 插头使合成成为可能。这与正常的函数组合有什么不同 插头和控制器之间有什么区别?什么时候用什么,因为我可以提前退出插头呢 最后,控制器具有操作。这些操作同样具有与基于函数的插件相同的特征。那么,动作与插头有什么不同呢 插头插入连接并返回修改后的连接。是的,控制器也是一个插头;行动也很重要。我和

Elixir 每次测试后停止GenServer 背景

我有一组测试需要在启动GenServer之前进行。根据经验,我知道在每次测试后进行清理是一种很好的做法,因此我还希望在每次测试后停止GenServer 问题 这里的问题是,我不知道如何在测试完成后停止GenServer。我总是会遇到一些并发性问题 defmodule MyModuleTest do use ExUnit.Case alias MyModule setup do MyModule.Server.start_link(nil) context_info

Elixir 长生不老药:十进制铸造,不允许负数

您好,我收到一个值,该值不能为负值,只能为正值。如果为负值,我想返回一个自定义错误,如果为负值,则转到管道 我现在有一个问题: def call(%{"id" => id, "value" => value}, operation) do Multi.new() |> Multi.run(:account, fn repo, _changes -> get_account(repo, id) end) |&

如何在elixir中替换数组中的元素

我想用3替换所有出现的2。我不想使用索引的值,因为这将是硬编码。到目前为止,我得到的是: list=[1,2,3,4,2,34,2] replace_at(list, index, value) Enum.each list, fn(x) -> if x==2 do replace_at(list, index, 3) end Enum.each list, fn(x) -> IO.puts x end 在Elixir中,您没有数组,但是。如果您只是想用3替换2的所有

Elixir Exto-与3个或更多表关联

如果我有档案,项目,位置表格,其中: 配置文件有许多位置 项有一个位置 配置文件中的位置和项目不会重叠 我应该如何设计位置表? 以下内容有效吗位置属于两个表 schema "profiles" do ... has_many :location, Location end schema "items" do ... has_one :location, Location end schema "locations" do ...

上一页 1 2 ...  43   44   45   46    47   48   49  ... 下一页 最后一页 共 125 页