Elixir 如何切换更新模型布尔属性?

如何在更新操作中切换activebool属性?我已经习惯了Rails,凤凰城的好习惯是什么 示例代码: defmodule Todo.task do use Todo.Web, :model schema "task" do field :active, :boolean, default: false timestamps end @required_fields ~w(active) @optional_fields ~w() def chan

如何在elixir/phoenix中编写自定义模型而不使用面向对象?

我正在用Phoenix框架构建一个小测试应用程序。我无法使用EXTO,因为我的数据库不受支持。但我仍然想要MVC模式。所以我需要一种实现自定义模型的方法。因为我来自RoR,所以我总是在面向对象编程模式中思考,在这种模式中,您有一个类定义和实例,以及可以获取和设置的属性。因此,类似这样的事情是可能的: @mike = User.new @mike.name = "Mike Power" @mike.save # ect 但这显然不是长生不老药的工作原理 我很难理解如何处理这个问题。实施应使我能

Elixir phoenix创建操作中出现错误时保留路由

我有一个凤凰行动,看起来像: def create(conn, %{"user" => user_params}) do changeset = User.changeset(%User{}, user_params) case Repo.insert(changeset) do {:ok, user} -> conn |> put_flash(:info, "#{user.name} created!")

Elixir 如何在phoenix框架中获取当前url

我想知道elixir/phoenix框架的当前url,我如何获得它 编辑#1: 我的nginx配置文件: server { client_max_body_size 100M; listen 80; server_name *.babysittingbordeaux.dev *.babysittingparis.dev access_log /usr/local/var/log/nginx/baby-access.log;

Elixir 如何在Phoenix Logger中只记录秒而不记录毫秒?

凤凰号记录器打印: 03:43:04.377 request_id=xxx [info] Sent 200 in 3ms 如何使其省略毫秒并打印: 03:43:04 request_id=xxx [info] Sent 200 in 3ms 您可以通过尝试将以下内容添加到日志中来自定义记录器输出: 配置:记录器,:控制台,格式:$time$metadata[$level]$levelpad$message\n 但是。。。很遗憾,在我查看的文档中,它不支持没有毫秒的时间格式 您可以尝试自己

Elixir 菲尼克斯慢响应时间

我的网站上每一个页面的回复都很慢。我不知道这是怎么发生的 Phoenix日志记录报告的是微秒或毫秒,但实际响应时间有明显的延迟,正如浏览器开发工具所报告的,总是在半秒左右 为了检查原因,我创建了一个最小控制器: defmodule MyApp.HelloController do use Phoenix.Controller def index(conn, _params) do text(conn, "Hello") end end # router get "/hello

Elixir 在使用Mix创建Phoenix项目时,如何解决以下错误?

我遵循凤凰城指南学习使用凤凰城进行web开发。我安装了所有的必备软件。以下是我的开发环境: Ubuntu : 16.04 (xenial) x86 64bit Phoenix : 1.2.1 Elixir : 1.3.3 hex : 0.13.2 Erlang/OTP : 19 NodeJS : 6.9.1 PostgreSQL : 9.5.4 brunch : 2.9.1 npm : 3.10.8

Elixir 外星演员协会查找或创建

调用cast\u assoc时,我希望使用“查找或创建”样式的行为。有没有一个简单的方法在外太空做到这一点 作为一个人为的例子,用户属于最喜爱的颜色,它是唯一的,由color.name。如果我使用已经存在的常用颜色创建了一个新用户,我会得到一个错误(名称已被采用)。相反,我想将user.color\u id设置为预先存在的color记录。是否有一个内置的功能,在外星做到这一点,或者我将不得不推出自己的解决方案 用户变更集: def changeset(struct, params \\ %{})

Elixir 与菲尼克斯连载多对一关系

我正在寻找一些在Phoenix应用程序中将结构序列化为json的教程/示例。我发现了这样的例子:但它没有使用毒药,也没有用嵌套的结构映射覆盖结构。我也尝试过这个答案:但我没能正确地实现它。我想序列化与控制器中的另一个结构有很多关系的结构的映射。有没有人见过这样的事情,或者能帮我处理这样的案子 您可以简单地对协议使用definpl,并实现自定义encode。 您将需要直接在模型文件中执行此操作,这样您就可以添加其他字段,或者只需确保正确加载关系 为了获取关系项,您可以简单地使用private函数,

Elixir EXTO-在创建具有父关联的记录时预加载关联

当传递1对多关联的父记录的ID值时,我在创建子记录时收到一个关联错误 错误显示我需要预加载用户,这是事务的父记录 1) test creates and renders resource when data is valid (MyRewardsWeb.TransactionControllerTest) test/controllers/transaction_controller_test.exs:36 ** (RuntimeError) attempting

Elixir 主管有逻辑可以吗?

我目前正在使用Elixir,我正在对我的Todo应用程序代码进行重构,以便更好地掌握OTP的主要部分 应用程序使用的数据库只是将数据存储在磁盘上的文件中。要确保数据库的目标文件夹存在,File.mkdir\p!(db_folder)在数据库进程内调用。数据库进程本身使用一组工作进程来执行实际的磁盘数据存储/检索 我目前所在的章节介绍了一个DIY流程注册表,通过让工作人员将自己注册到注册表,并让数据库流程查找使用注册表的工作人员,实现了一个更健壮的监督树,这样双方都可以受到监督,并且在失败后仍然可

如何计算Elixir中列表的累积金额?

我有一份小组名单: [[10,1]、[11,1]、[13,3]、[15,10]] 我需要计算它们的累计总和,以获得: [[10,1]、[11,2]、[13,5]、[15,15]] 我一直在尝试使用Enum.reduce,但我还不知道如何将新列表作为累加器返回,我应该从列表的尾部获取最后一组并从中获取最后一个数量,还是有更好的方法?也许我没有理解你的意思,所以我根据你的需要准备了两个答案 1。列表列表,第二个值是累积和 没有Dogbert提出的Enum.scan的解决方案,非常棒 def map

Elixir 能够创建一个;“通用”;插头?

我在凤凰城的一个玩具项目上工作,它本质上是一个多步骤订购网站。在排序过程的每个步骤上,我希望确保设置了前一个会话的会话变量。目前我为每个插件都有一个插件,它本质上是同一个插件和不同变量的复制粘贴 下面是一个玩具插头的例子 defmodule Project.Plugs.RequireDesign do import Plug.Conn import Phoenix.Controller alias Project.Router.Helpers def init(_params

如何将erlang源文件添加到elixir包版本到hex

我正在使用mix建立一个长生不老药库 该库在src目录中包含一个erlang模块 当我需要使用相对文件路径(即,我有完整的源代码)将我的库放入第二个项目时,它可以正常工作。我刚刚将这个包发布到hex,当在同一个第二个项目中将它声明为hex依赖项时,我得到一个错误,即没有加载erlang模块 您是要包含在包中的文件列表,但该列表不包含src,这就是为什么不包含src中的文件。您可以将“src”添加到该列表中: defp package do [files: ["lib", "mix.exs",

使用elixir比较两个列表,如果匹配则返回true

我有这个功能:我试图比较记录列表,看看它们之间是否匹配 def current_user_has_team?(user, teams) do user = user |> Repo.preload(:teams) Enum.member?(user.teams, teams) end 但这不起作用,因为当只有一条记录且它们匹配时,它返回false 我怎么能在Elixir中说:“看看这个记录列表,这些记录中有没有匹配的?” 在Ruby中是这样的: list_1 = [1,2,3]

如何在Elixir中扩展现有协议?

如何在Elixir中正确扩展现有协议 例如:Poison.encode!(:null)返回“null” 以Poison.Encoder协议为例。我想为Atom添加一个协议。但如果不重新定义协议中的所有内容,我不知道如何做到这一点 defimpl Poison.Encoder, for: Atom do alias Poison.Encoder def encode(nil, _), do: "null" def encode(true, _), do: "true" de

Elixir 如何在EXTO中进行子查询?

我有两张桌子;挂牌和投标。我想列出所有的上市公司,其中最高出价是1以上和10以下使用电子交易。有关模式和查询的更多信息,请参见下面的代码 数据库模式 listings id name bids listing_id amount program.ex Repo.all( from l in Listing, where: (SELECT MAX(amount) FROM bids WHERE listing_id = l.id) > 1 and

Elixir:如何避免深入嵌套的case语句?

假设我有一个函数main_function,它依赖于其他三个函数的结果,每个函数可以返回{:ok,result}或{:error,error}。我怎样才能避免在javascript中有像回调地狱一样的深度嵌套的case语句呢 例如: def func1(input) do case SOMECONDITION do {:ok, result} -> {:ok, result} {:error, error} -> {:error, erro

Elixir (FunctionClauseError)Access.get/3中没有匹配的函数子句-单独的问题,因为主题中的其他函数子句正在被删除

问题1为什么我在中的附加问题被主持人删除了,而它是问一个关于原始问题答案的问题 问题2我试图理解为什么: 原始答案和(不起作用的)答案 提出: == Compilation error in file lib/data_dictionary.ex == ** (MatchError) no match of right hand side value: #Function<62.51129937/2 in Stream.transform/3> ... ==文件lib/data\u

Phoenix Elixir:无法在Elixir编译器中转义函数

从中,我有一些优雅的: get("/old-path", Redirector, to: "/new-path") get("/old-path/:id", Redirector, to: "/new-path?object=:id") 在myrouter.ex中 但我现在有一个更复杂的情况,这要求我的重定向是动态的。我想去: get("/other-old-path", Redirector, to: fn conn, options -> "/whatever-path" end)

Elixir Phoenix单元测试如何检查连接对象是否重定向到特定路径?

假设我有一个控制器动作some_action/2,它重定向到/a-path。我需要编写一个单元测试来断言连接是否重定向到/a-path。如何在Pheonix中执行此操作。使用redirected\u to函数断言连接是否重定向到特定路径,如下例所示 test "redirects to the path /a-path", %{conn: conn, user: user} do new_conn = some_action(conn, %{}) assert re

Elixir 为什么Phoenix LiveView函数“推送事件”未定义?

我想通过以下功能将事件从liveView服务器发送到客户端: def handle_event("test", _, socket) do {:noreply, push_event(socket, "testEvent", %{coins: 23, user: "user"})} end 这在liveview的文档中也有类似的解释。 但我得到了这个错误信息: (CompileError) undefined func

Elixir/Phoneix-SFTPClient连接错误

我将把SFTPClient库集成到DockerizedElixir/Phoenix后端项目中,以访问SFTP服务器 使用FileZilla,它与OpenSSH私钥完美结合 但是使用库时,它不会连接到服务器并返回奇怪的错误消息 options = %{ host: "", port: , user: "", password: "", private_key_path: &quo

Elixir 伞式应用程序中的监督树冲突 背景

我有一个伞形应用程序,里面有许多较小的应用程序。其中一个名为A的应用程序需要能够旋转和管理另一个名为B的应用程序 B本身就是一个应用程序,它公开了一个公共API,并拥有一个GenServer,负责接收请求,然后重定向到逻辑模块等 问题 因此,我有两个要求: 我必须能够独立启动B,并将其作为普通的独立应用程序使用 A必须能够在其子项中包含B,并在需要时重新启动/管理它 我在这里遇到的问题是,我的代码可以实现1或2,但不能同时实现两者 代码 下面是appB的重要代码: application.ex

Elixir 在“创建表”中添加对另一个表的引用

如何在sql脚本中添加对另一个表的引用 在exto.Schema中,我需要将其添加到CREATETABLESQL脚本中 我的sql脚本看起来像 create table somemodule.table user_id INT, ... create table somemodule.table user_id INT, ...

Elixir-Exto:如何验证外键约束?

我正在使用Elixir和Phoenix web框架,但现在我一直在尝试验证外键约束。因此,给定一个带有许多注释的模型Post,我编写了Comment模型,如下所示: defmodule MyApp.Comment do use MyAPp.Web, :model schema "comments" do field :body, :text belongs_to :post, MyApp.Post timestamps end @required_f

Elixir 如何在Phoenix中渲染透明gif像素?

来自Rails的背景,我希望我能呈现一个透明的像素gif。要在Rails上实现这一点,我只需 gif_data = "GIF89a\x01\x00\x01\x00\x80\xFF\x00\xC0\xC0\xC0\x00\x00\x00!\xF9\x04\x01\x00\x00\x00\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x01\x012\x00;" respond_to do |format| format.gif { render text:

Elixir 菲尼克斯电气表格

我刚刚开始与凤凰城,我正在通过&也查看文档。我已经能够根据指南正确设置所有内容,并通过iex发送了一封测试电子邮件,但我还没有弄清楚如何在不使用表单中的@changset的情况下发送电子邮件。我的印象是,只有在使用模型数据时才需要使用@changest。在我的场景中,我只是试图捕获一个名称、电子邮件和消息,当用户单击“发送”时,这些信息会发送给我 非常感谢您的帮助 通过使用和虚拟字段,您可以使用变更集,而无需数据库支持它: defmodule ContactForm do use

Elixir ExUnit模拟在并发性中会混淆(异步:false不工作?)

在执行ExUnit.start时,在每种情况下,我都会通过meck像下面这样准备模拟 defmodule MyModule.FooTest do 使用ExUnit.Case,async:false#显式同步 进口:墨西哥克 别名MyModule.Foo 别名MyModule.Baz#将被嘲笑 测试“call_baz”do expect(Baz,:某种异步方法[ {[],:meck.val(Task.async(fn->%{“name”=>“otai10”}end)}, ]) 断言Foo.call

如何使用Elixir OTP Supervisor/GenServer进行快速作业

我不想有一个长时间运行的过程。但同时,要使用主管和工人流程。我该怎么做呢 场景:每到午夜,我都会使用受监督的进程从外部API获取数据 但如果工人们完成了工作,我不希望这个过程一直持续到第二天 在我的例子中,始终存在1个主管、5个池童流程 既然erlang进程很便宜,而且这些进程是空闲的,那么我是否应该让我的应用程序中的supervisor部分每次启动,然后让它空闲 或者我应该在员工流程完成时杀死主管吗 当我执行:observer.start时,我可以看到我的依赖项包中很少有进程已启动。这样行吗?

Elixir 如何称呼:长生不老药中的mimemail?

调用中的:mimemail.encode。如果它在mix phoenix.server中运行,则可以正常工作,但在发布环境(使用mix-release构建)中无法调用它。它会发生以下错误: (UndefinedFunctionError) undefined function :mimemail.encode/1 (module :mimemail is not available) 是否有任何配置可在exrm env中调用它,或者缺少要配置的内容 [更新] my mix.exs中的应用程序和

如何将Elixir库加载到iex中而不将其添加到项目';是混合的吗?

我想在不创建混合项目的情况下试用Poison json模块 如何安装它并通过导入在iex中提供 我已经能够将它添加到项目中,然后在进入项目目录并使用iex-S mix后使用它: tbrowne@LILJEN:~/code/elixirTry/pj$ cat mix.exs defmodule Pj.Mixfile do use Mix.Project def project do [app: :pj, version: "0.0.1", elixir: "~

在elixir中,如何向来自外部源(第三方、stdlib等)的模块添加功能?

我对elixir还不熟悉,我正在构建一个命令行应用程序来熟悉mix和elixir,而不需要太多依赖项 当我构建命令行应用程序时,我倾向于使用ansi颜色代码来提高输出的可读性 IO.ANSI似乎只支持8种颜色,它们可能与明亮的、下划线等组合在一起。在16色托盘中,无法获得其他8种颜色 当前源具有以下代码: colors = [:black, :red, :green, :yellow, :blue, :magenta, :cyan, :white] for {color, code} <

Elixir 如何使用早午餐从节点_模块复制字体文件夹

我正在关注这篇博文,但是字体没有被复制 描述 问题的实质是什么? 不包括字体文件夹 预期行为 我希望包括字体文件夹 环境 早午餐:2.8.2 节点:v6.3.1 净现值:3.10.3 操作系统:OS X 10.11.6 package.json内容 早午餐内容 不要将节点_模块归类为“资产”,即使它们与 正则表达式 不要将节点_模块归类为“资产”,即使它们与 正则表达式 奥敏的回答相当简洁,所以我会尽量提供更多细节 截至brunch的最新版本,通过node_模块提供的非JavaScript或CS

Elixir 在长生不老药的刽子手游戏中用字母替换破折号

我试图在Elixir中实现hangman,但我不知道如何用正确猜测的字母(适当的索引)替换占位符单词中的破折号。我尝试过使用slice/3和replace/4函数,但运气不好。下面是我检查用户输入的字母是否在密码中的函数,并尝试将该字母插入包含破折号的占位符中: def check_match(word, guess) do len = String.length(word) str = String.duplicate("_ ", len) if String.con

Enum.reduce中带字符串连接的Elixir ArgumentError

传递字符串“word”时,我试图打印“W-oo-rrr-dddddd”(这是一个kata) 但是,如果从第二个函数匹配中去掉累加器连接,则不会引发错误(尽管代码现在是错误的) 但是,字符串连接似乎工作得很好: iex(73)> Enum.reduce(["StringA", "StringB"], fn(x, acc) -> acc <> "-" <> x end) "StringA-StringB" iex(73)>Enum.reduce([“String

Elixir 从EXTO中的查询中获取主键

我希望从查询中动态获取主键。我有一个主意。首先,我从查询中获取模式(我不知道如何获取)。之后,我将从模式中获取表名: {_, table_name} = %Core.Schema{}.__meta__.source 并发送将获取主键的SQL。 因此,就产生了三个问题: 有没有办法从查询中获取模式(以及在获取表名之后) 是否直接从查询中获取表名 exto.primary_key()不能处理查询,也许它们有其他方法 如果查询是使用架构模块构建的(即from(Post中的p),而不是from(pos

Elixir 链接创建与凤凰城的行动

我正在尝试启动一个创建操作,其中包含一个链接,指向Phoenix中的link_helpers。但似乎没有一个明显的答案,所以我认为这可能是一个不好的做法 以下是我正在尝试的: <%= link "Create Prediction Points", to: prediction_score_path(@conn, :create) %> 有办法做到这一点吗?如果是这样,我应该吗?任何可能改变服务器上某些内容的操作都应该在HTTP POST后面,而不是HTTP GET后面。因此,即使

Elixir 理解Genserver-启动链接/0与默认值冲突

我正在尝试实现一个GenServer来监视我的一个函数,然后在1小时后重新启动进程。如果我第一次使用GenServer,请原谅我缺乏这方面的知识 代码: 如果在数据库中找不到表行,我希望此代码在一小时后重新启动我的检查问题/0功能。我得到了一些关于这个答案的帮助。我认为这与我想要的非常接近,但我在编译时遇到了以下错误: 错误: 应用 解决方案: 如果从数据库中找不到问题,我需要重新启动check_question功能。感谢您的帮助。使用Quantum。调度程序已在为您定义开始链接/0和开始链接/

Elixir 生成后控制器未定义

刚开始使用Phoenix,我生成了项目并运行Phoenix.gen.json Todo todos描述:string /lib/test_web/router.ex # Other scopes may use custom stacks. scope "/api", TestWeb do pipe_through :api resources "/todos", TodoController, except: [:new, :edit]

在Elixir中将过滤器重写为管道操作符

我对长生不老药很陌生,正在尝试重新排版: kids = ["Mike", "Paula", "Julia", "Phil"] Enum.filter(kids, fn(n) -> String.contains? n, "i" end) # results in: ["Mike", "Julia", "Phil"] 像这样的事情 kids |> Enum.filter String.contains? "i" 不行我错过了什么?非常接近,你可以一步一步地去做 将孩子们移动到“|>

Elixir insert\u all与类型不匹配:utc\u datetime

所以我有一个对象数组,我想用insert\u all保存它。我得到一个错误,我的一个字段不匹配 edtr.json { "edtrs": [ { "dtr_date": "2018-12-29T16:00:00.000Z", "user_id": "8189f04b-e3d7-4d17-8df2-fedbeb0399b1" }, { "dtr_date": "2018-12-30T16:00:00.000Z",

Elixir Broadway如何从SQS发送和接收消息

我已成功创建与AWS SQS的连接。这是我的密码: def start_link(_opts) do Broadway.start_link(__MODULE__, name: __MODULE__, producers: [ default: [ module: { BroadwaySQS.Producer, queue_name: "my_queue",

Elixir 在不将服务器加载到极限的情况下生成巨大的报告

我现在正在设计一个系统,你可以上传数据库中的备份,在用户的要求下,他应该能够下载一个zip格式的摘要。问题是:如何处理大量数据而不将服务器和数据库加载到极限 不应考虑时间限制,因为我们可以在摘要准备好时通知用户,重要的是平衡负载,这样服务器在发出此类请求时不会出现峰值 我正在考虑使用长生不老药流程,但是没有实际的方法限制它将使用多少资源。您是否考虑过使用流来解决您的问题?它可能会帮助你 下面是一篇关于流主题的可能有用的文章: 这应该是一个评论,而不是一个答案。您可以尝试:或者:我设法收集了有关此

Elixir 为什么我要在长生不老药中使用地图

在过去的几天里,我一直在学习Elixir的基础知识,虽然我不止一次读到新手很难决定使用哪种数据结构,但我个人并没有看到地图和结构之间有什么不同。 我的意思是: 要访问映射上的字段,我总是需要调用Map.fetch(@Map,:field),而在结构上,我只需在两者之间加一个“.”就可以轻松访问它 使用地图是否有性能原因?还是我对其他主要原因视而不见?因为总是需要调用映射。一些处理映射的函数似乎比使用结构更冗长。struct只是一个隐藏在引擎盖下的映射,还有一个名为\uu struct\uu的

Elixir 如何用EXTO实现双向外键

我是elixir编程新手,我正在尝试迁移两个表中都有外键的数据库,但它似乎不起作用 def change do create table(:users) do add :username, :string add :email, :string add :name, :string add :password, :string add :address, :string timestamps() end alter table(&

上一页 1 2 ...  46   47   48   49    50   51   52  ... 下一页 最后一页 共 125 页