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编程技术网」

endpoint.ex文件在phoenix elixir中起什么作用

我不熟悉长生不老药和凤凰,也不熟悉凤凰指南。在入门指南中,他们只是说,但并没有解释什么是端点,什么是任务。有人能解释一下它的作用吗?不要从@Gazier身上拿走任何东西,但我同意@JoseValim;他的回答应该是一个答案,这样其他可能寻找这个答案的人可以很容易地找到它 端点是所有对web的请求的边界 应用程序启动。它也是应用程序提供的接口 到底层web服务器 总而言之,端点有三个职责: 提供用于启动和停止端点的包装器作为 属于 监督树 定义发送请求的初始插入管道 为应用程序承载特定于web的

在elixir中命名嵌套伞形应用程序

伞式应用程序的行为与mix设置的普通应用程序非常相似。它们具有配置,可以作为一个整体启动。因此,随着应用程序的增长,它们可以扩展为伞式应用程序。现在,我想将伞式应用程序定义为更大伞式应用程序中的一个应用程序 有什么好的理由不这样做吗 还有没有一种方法/约定来命名应用程序的名称空间? 比如说 def project do [app: :"analytics.web", version: "0.0.1", deps_path: "../../deps", loc

Elixir 如何检查图像';长生不老药的s格式

假设我在某处存储了一个文件,它可以是jpeg文件,也可以是png文件,如何检查它是什么 我应该检查一下分机吗?还是应该读取文件的二进制签名?或者我该怎么做?更新:2016年4月2日,包括.JPG验证 有一个相当流行的十六进制软件包可能适合您。从Arc中提取: def validate({file, _}) do ~w(.jpg .jpeg .gif .png .JPG) |> Enum.member?(Path.extname(file.file_name)) end 我想你可以提取

Elixir 为什么我会得到;坏演员;使用GenServer?

elixir新手…所以我键入iex server.ex以使用StackServer启动elixir环境。(我正在使用kiex和kerl来设置长生不老药,如果这有区别的话) 我有: 第1行很好,但当我执行上面的第2行时,会出现以下错误: 23:50:04.491 [error] GenServer #PID<0.64.0> terminating ** (stop) bad cast: {:push, 2} lib/gen_server.ex:432: StackServer.

在Elixir中设置现有结构值?

是否可以在现有结构中设置值? 我说的是将现有结构传递到函数中并设置该结构的“name”值的想法(例如) 我所拥有的: main.exs user.exs defmodule User do defstruct [name: ""] def constructor(name) do %User{name: name} end end 有什么办法让这个想法起作用吗 def setName(struct, newName) do struct.nam

Elixir 如何在Phoenix中将实例方法添加到模型中?

我有这个模型: defmodule MyApp.MyModel do use MyApp.Web, :model import Ecto.Query # .... 如何向其中添加一个实例方法,该方法还使用MyModel上的其他字段?这不起作用,因为在html页面上,它会抛出一个异常,称为the key:my_method not found defmodule MyApp.MyModel do use MyApp.Web, :model import Ecto.Query

Elixir 在Phoenix框架中,为什么会有冗余的;计划;移民呢?

不创建迁移就不能修改架构?为什么会有移民和移民计划?为什么不仅仅是移民?这似乎是多余的。迁移是更改数据库架构的方便方法。每次迁移都可以被视为数据库的新版本。您可以根据需要添加或删除表、列或条目。 其中asSchema是数据库的当前状态 建议通过迁移来更改模式,因为您知道如何更改数据库的历史,并且它提供了回滚迁移等功能 考虑一个新生成的phoenix应用程序,当我们运行mixect.create时,当前没有表,只有一个空数据库。根据我们的要求,我们需要一张表格,上面写着user。我们使用mix-e

如何使用elixir中的正则表达式模式匹配提取所有子字符串

字符串:Lorem ipsum{{dolor}}sit{{amet}},CONCETETUR ADIPSING{{elit}}, 我想从上面提到的字符串中提取一个包含{{}的所有标记的列表,并对它们进行处理,即检查db是否存在,然后将它们替换为标记链接,如下所示 [substring](/tag/:substring_id) 我可以换成 String.replace(string, ~r/\{\{.+?\}\}/, "new substring") 但这对我没有帮助,因为我无法处理子字符串

我可以在Elixir中连接字符串并使用管道操作符吗?

在Elixir中,您可以使用操作符连接字符串,如中的“Hello”“World” 还可以使用管道操作符|>将函数链接在一起 我正在尝试编写长生不老药代码来格式化在线游戏的货币 def格式\u价格(price)do 价格/万 |>浮动圆(2) |>串 |>“g” 结束 上述操作会导致语法错误。我是否忽略了可以连接字符串的基本函数?我知道我可以自己定义一个,但如果我能避免的话,这似乎会在我的代码中造成不必要的混乱 我意识到我可以完成同样的事情,只需将方法链接在一起,比如到_string(Float

Elixir 模式匹配和设置值

我开始使用长生不老药,但在使用模式匹配时遇到了一些问题 假设我要声明一个映射,例如: var = %{ y: Float.parse("3.4"), z: Float.parse("7.8") } 要达到以下效果: var = %{ y: 3.4, z: 7.8 } 考虑到Float.parse返回{floatVal,}。如何在不声明临时变量的情况下执行此操作 下面的代码是实现这一点的唯一方法吗 var = %{ y: Float.parse("3.4

Elixir 管道和占位符参数

如何将管道占位符传递给函数中的第二个参数 defdefmodule CamelCase do str = "The_Stealth_Warrior" def to_camel_case(str) do str |> Regex(~r/_/, 'need_to_pass_str_argument_here', "") |> String.split(" ") |> Enum.map(&(String.capitalize(&a

Elixir 存储GenServer的pid以备将来使用

我需要在应用程序启动时启动GenServer,但是调用和转换GenServer需要它的PID。我将如何在应用程序的其余部分中获得这些信息,以供将来使用 如果GenServer将死亡并由主管重新启动,它将收到新的pid,您的“存储”pid将不再有效-您将无法访问GenServer。这就是为什么您应该在此处使用名称: {:ok,{}=GenServer.start\u link(MyApp,[:hello],name::your\u GenServer\u name) 然后,调用/播放将如下所示:

Elixir 重复列表模式

复制受给定长度限制的列表模式的最佳方法是什么 例如: 给定一个模式[1,2,3]和长度7,结果将是[1,2,3,1]我能想到的最简单的方法是使用Stream.cycle/1和Enum.take/2: iex(1)> [1, 2, 3] |> Stream.cycle() |> Enum.take(7) [1, 2, 3, 1, 2, 3, 1]

处理Elixir/Phoenix上的所有未捕获错误

我正在构建一个elixir/phoenix项目,希望对所有未捕获的错误(包括控制器、视图、路由器和套接字通信错误)进行一些额外的处理 我想做的是捕获所有未捕获的错误,并将错误信息发送到外部错误日志聚合器,然后再次引发错误以完成原始错误过程 例如,对于我来说,以下选项中的最佳选项是什么 使用Plug.ErrorHandler 使用自定义插头 实现一个指令器 提前谢谢。这个问题是基于观点的,但我会尽力提供最不偏颇的答案 Phoenix本身,也就是说在dev环境中几乎就是为了这个目的。它的大部分功

Elixir 蒸馏厂未更换systemd版本中的变量

我在试图使用蒸馏器在运行时获取系统变量时遇到了一个问题。目前,我已将与数据库的连接定义为: config :myapp, MyApp.Repo, adapter: Ecto.Adapters.Postgres, timeout: 2000000, username: "${DB_USER}", password: "${DB_PASSWORD}", database: "${DB_DATABASE}", hostname: "${DB_HOST}",

Elixir Phoenix:具有相同资源的JSON和HTML表示

我开始在教程之外使用Phoenix作为一个小用例。到目前为止还不错,但我对以下几点有点吃惊 我有一个资源“录制”,我想访问JSON中的at/api/recordings和带有模板的at/recording,结果是HTML 理想情况下,EXTO表示将是唯一的,甚至控制器的一部分也将共享 现在我要么有2个资源recordingAPI和RecordingTML,要么有2个控制器和1个资源 有什么例子吗?我一直在寻找其中一个,但没有找到用于同一资源的:api管道和:browser管道 谢谢您可以利用ph

Elixir Phoenix-无效CSRF(跨站点伪造保护)令牌错误

尝试更新(或创建)记录时收到无效的CSRF令牌错误。我正在使用ElixirV1.0.3、Erlang/OTP17[erts-6.3]和Phoenix v0.8.0(我想,我不知道如何检查Phoenix的版本)。我正在创建一个web应用程序,主要遵循Phoenix指南和Elixir Dose Jobsite示例资源。然而,当我试图从html表单发布信息时,我得到了无效的CSRF令牌错误。按照错误中给出的建议,我在操作中添加了“x-csrf-token”:csrf_token edit.html.e

Elixir 我可以把插头放在哪里,然后在我的Phoenix应用程序的不同控制器上使用它们?

我正在创建我的第一个Elixir-Phoenix应用程序。我已经写了一些我想在多个控制器中使用的插件,现在有很多代码重复,因为插件代码在我所有的控制器中都被重复 我的问题是,是否有一个文件,我可以在其中放置所有插头,然后从不同的控制器访问和使用它们 # somefile to define my plugs defp load_subject(conn, _) do subject = Subject |> Repo.get conn.params["subject_id"]

Elixir 如果当前页面在Phoenix中,则在元素上应用CSS类

我目前正在寻找添加一个CSS类,如果一个页面是活动的。目前在凤凰城做这件事的最佳方式是什么?这个案子有帮手吗 def active(option, conn) do if option == conn.request_path do " class=\"active\"" else "" end end 在模板中: <%= "contact" |> active(@conn) |> raw %> active(@conn)|>raw%> 我

Elixir 在phoenixweb框架中配置系统变量

如何使用System.get_env(“访问密钥ID”) 我已经创建了一个包含以下内容的config/application.yml文件 dev: access_key_id: ABCDEFGHIJKLMN 我尝试过使用费加罗长生不老药,当我从终端测试它时,它工作得非常完美 当我跑的时候 $ MIX_ENV=dev iex -S mix iex(1)> System.get_env("ACCESS_KEY_ID") "ABCDEFGHIJKLMN" iex(2)> 但是在我的

在elixir应用程序中访问项目版本

我有一个定义版本的长生不老药项目。如何从正在运行的应用程序中访问此文件 在mix.exs中 def project do [app: :my_app, version: "0.0.1"] end 我想在应用程序中访问此版本号,以便将其添加到返回的消息中。我在env散列中查找如下内容 __ENV__.version # => 0.0.1 我在:application中找到了该版本。哪个应用程序,但它需要一些解析: defmodule AppHelper do

Elixir 凤凰频道的广播如何影响其他节点上的客户端?

我试着比较凤凰频道和新频道在使用WebSocket时的表现 对于某些上下文,ActionCable在向所有客户端广播消息时使用Redis处理PubSub。示例场景:一个单独节点上的3个rails进程中的1个将能够广播到所有web服务器上连接的客户端。这是通过点击Redis来实现的,Redis反过来发布到所有rails服务器,然后这些服务器推送到所有连接的客户端 我最近读到了关于websocket连接的文章 还发现了这个宝石: Phoenix 1.0发行说明中提到了以下有关频道的内容: 即使在一组

Elixir 在Phoenix中幂等创建用户

我想使用Phoenix的开箱即用create/2功能将其用于我的用户注册用例。为了实现这一点,我需要以幂等方式创建一个用户。我很难找到用长生不老药做这件事的最有效的方法 例如,这是Phoenix用于创建资源(在本例中为用户)的现成代码段: 我想做的是首先检查用户是否存在于特定字段中。如果存在,则返回一个带有对象的200,否则运行上面的代码 我会使用嵌套的case语句进行此操作还是 使用函数插件返回现有用户 这是一个很好的例子。您可以在示例中看到他们如何将show操作从多个嵌套案例转换为使用插件。

Elixir 如何在Phoenix中从控制台或任何模块广播消息?

我试过这个 我也试过这个,也许我的答案有问题,也试过这个代码 但是他们中没有一个可以向应用程序中添加新消息,任何帮助都很好。您需要运行服务器才能使其正常工作 iex -S mix phoenix.server 然后在IEX中: Phoenix.Channel.broadcast "rooms", "lobby", "new:msg", %{user: "User", body: "Hello from console"} 光跑是不够的 Iex -S mix 在这种情况下,没有任何内容侦听事

Elixir中的相等运算符是否有前缀/波兰符号?

我正在学习长生不老药,我决定给自己做的练习之一就是试着用惯用的长生不老药来编写信用卡验证程序 我意识到Elixir中的==是一个内核函数,显然是由编译器内联的。有没有什么实用功能可以让我做这样的事情 ... |> == 0 而不是像我在这里所做的那样,定义一个要导入的函数 长生不老药 defmodule Luhn do def equalzero?(x) x == 0 end def validate(num) do digits = Integer.digits(num

Elixir 在父对象中呈现子对象的索引模板';s显示模板

我有一个用户和一封电子邮件脚手架(一个用户有许多电子邮件)。如果用户有电子邮件,我想在用户显示中显示电子邮件索引模板。代码如下: web/controllers/user\u controller.ex [...] def show(conn, %{"id" => id}) do user = Repo.get!(User, id) |> Repo.preload([:emails]) conn |> assign(:user, user) |> ren

具有默认参数的函数的Elixir类型规范

如何为接受(比如)一个具有默认值的参数的函数编写类型规范?如下所示: def foo(bar \\ 10) do bar end 是这样的吗 @spec foo(integer) :: integer 或者会是什么 谢谢。是的 我想补充一点,如果你的问题是,如果一个函数的typespec有一个默认值的参数和一个没有默认值的参数之间存在差异,那么就没有区别。它按预期工作,因为你实际上定义了两个函数 @spec foo(integer) :: integer def foo(bar \\ 1

Elixir 理解的范围界定问题

我想对一系列值的组合进行一些分析 我有以下函数,但由于某种原因,在理解完成后,在函数体的末尾,变量analytics仍然是一个空列表,而它不在每次迭代的理解范围内 有什么想法吗 def handle_cast({:start}, state) do intervals = [7, 30, 90] groupings = ["day_of_week", "time_of_day"] aggregators = [ %{ domain: "supp

什么';更新到最新(稳定的)Elixir版本的最快方法是什么?

我想知道是否有更新Elixir的命令。下面是我如何更新到Elixir 1.3的 在终端: brew unlink elixir 然后 brew install elixir 有没有办法用一个终端命令完成此更新 感谢您抽出时间。跑步: brew update && brew upgrade elixir 假设自制是最新的,我可以运行brew upgrade elixir?

Elixir 在保证关闭的情况下,将数据以文本格式流式传输到文件的长生不老药习惯用法是什么?

我已经编写了一些代码来生成值流,我想将它们发送到一个文本文件进行分析。我知道如何使用 { f, :ok } = File.open( 'foobar', [ :write, :utf8 ] ) 但我找不到将流发送到此文件的方法,即使我确信这一定很琐碎 由于这可能是相当大的数据量,我希望避免使用中间数据结构,并坚持使用流式方法。如果可能的话,我还希望有一些方法来保证文件将被关闭,即使在出现错误的情况下。流是使用file.stream创建的。您不需要显式关闭流,因为每次您//将数据流式传输到

Elixir 长生不老药综合效率

我有一个大型数据集,我正在使用它执行以下操作: data = %{ city: ["Chiselhurst", "Saskatchewan", "Boston"], day: [1, 2, 3, 4, 5, 6, 7], transportation: ["plane", "train", "automobile"] } defmodule Make do def combos(data) do for city <- data[:city], d

Elixir:作为函数处理的方法参数

我试图打印二叉树中给定级别的节点。我已经写了一个方法来实现这一点,并编写了一个guard子句来处理基本条件(我没有在问题中包括) 这种方法给了我错误的说法 height-1”看起来像一个函数调用,但有一个名为“height”的变量,请使用显式括号甚至空格 (stdlib)lists.erl:1353::lists.mapfoldl/3 (stdlib)lists.erl:1354::lists.mapfoldl/3 简短回答:将height-1替换为height-1 由于函数可以在Elixir中

Elixir 在Phoenix中设置Plug.Static头文件

我正在尝试将标题Connection:Keep Alive放在lib/app/endpoint.ex中: plug Plug.Static, at: "/", from: :app, gzip: true, only: ~w(css fonts images js favicon.ico robots.txt), etag_generation: {}, cache_control_for_etags: "public, max-age=3153600", headers:

Elixir 如何在EXTO中搜索数组长度

假设我有一个模式 defmodule User do use MyApp.Web, :model schema "users" do field :loved_numbers, {:array, :integer} end end 我如何使用exto.Query搜索恰好有2个爱过的号码的所有用户 此查询在PostgreSQL和MySQL中都能工作吗?对于PostgreSQL,您可以使用片段使用array\u length函数: from(u in User, where

Elixir Phoenix上下文授权(带和不带)

我遵循了完整的教程,解释了@chrismccord如何处理上下文和身份验证/授权……我利用了他关于将auth与dockyard blog分离的帖子:slight_smile:和 根据这一点,在我的案例中(CMS是ENR)所有创建的学生都需要一个注册者,注册者通过自己的会话链接到一个用户(经过身份验证):Student->属于注册者,注册者->属于用户,用户有自己的凭证 resources”/students,StudentController受到保护,这很好 但现在我想揭露一些事实:如果我们想让

Elixir 属性.t在长生不老药上是什么意思?

例如,在此模块字符串的typespec中: @spec validate(String.t) :: {:atom} 这是什么意思?我如何通过iex测试它 ** (UndefinedFunctionError) function String.t/0 is undefined or private (elixir) String.t() 更新 看起来有些人看不到通过iex进行测试的必要性 对于其他正在学习长生不老药的人,我们可以这样做: iex(8)> t String @typ

Bitstring collectable在Elixir 1.6.0上引发错误

出于某种原因,此代码 for i <- 7..0, into: <<>>, do: if i in [0, 1], do: <<1::1>>, else: <<0::1>> 对于i对于i对于i这在elixir版本中是固定的 iex(1)> for i <- 7..0, into: <<>>, do: if i in [0, 1], do: <<1::1>>,

为什么在Elixir中使用下划线作为参数,而不是完全不使用参数?

我知道Elixir在需要忽略这些参数时使用下划线作为参数。我的问题是,为什么会有它们 def photos(_,_,_) do {:ok, Instagram.Posts.list_photos} end def photo(_, %{id: id}, _) do {:ok, Instagram.Posts.get_photo!(id)} end 在本例中,我编写了一个方法(来自教程),该方法接受三个参数,现在都不使用,因此使用下划线,但为什么不使用空括号?在第二个示例中,我

Elixir 生成phoenix数据库图

是否有类似于Django graph_models的工具来生成phoenix webapp数据库图 python manage.py graph_models 我也在想这个问题。由于没有针对长生不老药/异位素的解决方案,我找到了两个合理的选择: -一个仅基于DB创建ERD的工具-它实际上非常棒和快速。我选择了这个选项 请考虑自己画。 您可能可以使用特定于数据库的工具,如pgAdmin或DataGrip等。这有点不同,但仍然有些不同。你还需要小心不要将Phoenix与exto混为一谈EXTO

Elixir 使用模块属性累积的映射:true

我可以像这样使用“累积”选项将模块属性注册为true Module.register_attribute __MODULE__, :structs, accumulate: true for line <- [%{"some" => %{"test1" => 1, "test2" => 2}}, %{"some" => %{"test1" => 3, "test2" => 4}}] do @structs %Struct{

Elixir 正确等待进程完成

目前我有这样的想法: ref = Process.monitor(worker) receive do {:DOWN, ^ref, :process, ^worker, :normal} -> IO.puts("Normal exit from #{inspect(worker)}") {:DOWN, ^ref, :process, ^worker, msg} -> IO.puts("Received :DOWN from #{inspect(worker

Elixir 如何将所有Enum.map值转换为字符串?

如何将所有Enum.map值转换为字符串 result = Enum.map( from(Scheme, where: ^whitelisted_params) |> limit(^query_limit) |> Repo.all(), fn elem -> elem |> Map.from_struct() |> Map.delete(:__meta__) end ) 在方案中,有string、bool和int类型使用

Elixir 长生不老药/凤凰添加a。通过表单与现有实体关联

我对长生不老药/凤凰城很陌生,我对一个概念有点困惑。我找到了一个解决办法,但我不满意 背景: 我在数据库中创建了一个“项目”。现在,我想通过项目“显示”页面创建一个与项目相关的“工作项”。因为它与那个特定的项目相关,所以我需要将ID添加到变更集中 我试着在项目\u控制器中这样做: def show(conn, %{"id" => id}) do project = Clients.get_project!(id) changeset = Client

Elixir 如何将收藏分成几个小组-长生不老药

如何将此集合分解为更小的组? 要获取此[[1,2,3],[4,5,6]请使用将其按块分割 Enum.chunk_every([1,2,3,4,5,6],3) #⇒ [[1, 2, 3], [4, 5, 6]] 或者将其拆分为包含两个部分的元组 Enum.split([1,2,3,4,5,6],3) #⇒ {[1, 2, 3], [4, 5, 6]} 用于按块分割 Enum.chunk_every([1,2,3,4,5,6],3) #⇒ [[1, 2, 3], [4, 5, 6]] 或者将其拆

Elixir 当您已经在iex中时,如何启动Phoenix服务器?

我知道我们可以发布iex-S mix phoenix.server。但是,假设我已经在iex-S组合中。如何启动服务器 谢谢。我很抱歉地告诉你,这是不可能做到的 请参阅此讨论以获取参考: 我引述: 不打算从iex或应用程序内部调用Mix。主界面是CLI,因此任务只能运行一次 只要开始以iex-S mix phx.server运行,那么iex和您的应用程序将一起运行这可能不是一种很好的方式,但我想您只是在dev中这样做。但是一种方法是设置mix phx.server集合,然后重新启动端点(本例停止

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