Elixir Phoenix框架回调

Phoenix框架是否使用了任何类型的回调过滤器,如中的回调过滤器?我知道可以验证变更集,但我正在寻找实施操作的方法,例如创建之前的、保存之前的、提交之后的 它们与Rails明显不同:它们接收并必须返回变更集,并且必须用于数据一致性(不要使用它们发送电子邮件等等)。从Ecto 2.0开始,回调被完全删除。 那么现在如何处理回调呢?。这里有两种方法 对于之前的回调,您可以使用自身。删除回调的原因之一是,许多开发人员在变更集足够的情况下依赖回调。因此,只需将所需函数应用于变更集 def change

Elixir 从Cowboy启动呼叫获取插入式路由器的信息

我在想办法从我的牛仔创业电话中得到线索 token = RandomString.generate() Plug.Adapters.Cowboy.http MyRouter, [] 到路由器中使用的代码: get "/webhook/:token" do if token == [what I generated earlier] do # handle request end end 更具体地说:我正在一个webhook服务器上工作。我想: 在服务器启动时生成一个秘密令牌

Elixir Elli与长生不老药基本用法问题

我正在我的长生不老药应用程序中使用elli 下面提供了示例代码。它非常基本,每次运行时,我只得到“内部服务器错误”。我不确定我做错了什么。有人能帮忙吗 defmodule Client.TestHttp do @behaviour :elli_handler def handle(_Req,_Args) do handle(:elli_request.method(Req), :elli_request.path(Req),Args) end def handle_e

Elixir Phoenix:使用资源时自定义URL结构?

使用mix phoenix.gen.html,我创建了一个新的Ecto模型和相关的路由,并将资源/用户UserController添加到我的router.ex。正如所料,这会自动生成URL,如/users/:id、/users/:id/edit等 我想将URL结构更改为类似于/users/:slug/:id/,其中slug是用户模型上的一个字段。在仍然使用Phoenix资源路由的情况下,有没有办法指定这个新的URL结构 如果它能让事情变得更简单:我并不特别关心验证:slug,或者如果客户输入错误

Elixir 在长生不老药中散列MD5

在Elixir中,您可以获得字符串的md5: ex(1)> :crypto.hash(:md5 , "Elixir") |> Base.encode16() "A12EB062ECA9D1E6C69FCF8B603787C3" 但为什么不从终端返回相同的值呢 [~ ~]$echo 'Elixir' | md5 694f56f4b30e60837151723777795fc2 当然我遗漏了什么。echo命令将包含一行新行: iex>:crypto.hash(:md5, "El

Elixir 使用EXTO创建mssql数据库时出错

我刚开始使用Elixir Phoenix新的web应用程序,包括: mix phoenix.new phoenix_sample --database mssql 它生成了带有db配置的config/dev.exs文件,我已修改以匹配当前的ms sql server: config :phoenix_sample, PhoenixSample.Repo, adapter: Tds.Ecto, username: "dev", password: "dev", database:

elixir中的嵌套列表理解

为了学习长生不老药,我想解决这个问题: 为了通过董事会,我会这样开始: 在python中: row_indexes = ["A","B","C","D","E","F","G","H","I"]; col_indexes = ["1","2","3","4","5","6","7","8","9"]; row_box_indexes = [["A","B","C"],["D","E","F"],["G","H","I"]]; col_box_indexes = [["1","2","3"],["

Elixir Phoenix部署exrm,letsencrypt freebsd

我想将phoenix应用程序部署到digital ocean的FreeBSD服务器,但我对所有这些新技术有点困惑。我也是一个新手在部署。我以前使用过heroku,但从未“真正部署”: 下面是我目前所做工作的列表: 1) 下载的virtualbox 2) 创建和配置FreeBSD与服务器类似,以便exrm在同一环境中运行 3) 运行letsencrypt auto-certonly--config/etc/letsencrypt/letsencrypt.ini,其中letsencrypt.ini为

如何查看所有模块';s进口及;elixir中定义的函数?

我有一个模块 defmodule There do import Othermodule, only: [a: 1] def b do end end 如何获取函数列表a和b?您可以使用与模块组合的功能。\ uuuu info\uuuu(:函数): 如果你删除最后一个Enum.map你会得到一个{function\u name,function\u arity}的关键字列表,你可以在那里使用获得定义的函数。你为什么需要这个?也许有另一种方法可以实现你想要的。在那里。\u信息(:函

Elixir 标记给出错误:crypto.rand_bytes/1未定义或为私有

我在测试中添加了login_as标记,phoenix开始给出该异常: defmodule Rumbl.VideoControllerTest do use Rumbl.ConnCase setup %{conn: conn} = config do if username = config[:login_as] do user = insert_user(username: username) conn = assign(conn(), :current

Elixir 对EXTO结果进行计算

我想对体外受精结果进行计算。我有一个产品表,有颜色、等级、品牌标识、价格。我想按范围0-1、1-2、2-3、3-4、4-5和每个范围内的产品数量对评级进行分组。我对长生不老药和埃克托很陌生。感谢所有帮助。这里有一个简单的方法,只需使用floor即可获得评级范围下限: defmodule QueryHelpers @doc "floor function for postgres" defmacro floor(x) do quote do fragment("flo

Elixir别名返回“;别名的参数无效,应为编译时原子或别名,Get:";

我使用mix创建了一个新项目,正在尝试alias,这是我的简单代码: defmodule MyModule do alias IO.puts def hello do IO.puts(:world) end end 但这又让我想起了这个错误: 别名的参数无效,应为编译时原子或别名,get:IO.puts() 我也试过: alias IO.puts, as: puts alias IO.puts, as: puts() alias IO.puts(), as: puts 鉴

Elixir 如何将命令行参数传递给mix run--无停止

因此,我有一个应用程序模块,它遵循以下布局: defmodule Project.Application do use Application def start(_type, _args) do children = [ randomchild1, randomchild2, {Project.runapp, "argument" } ] opts = [strategy: :one_for_all, name: Pr

Elixir Phoenix框架-jQuery连接

我在Phoenix框架上与我的项目的jquery连接有问题。我已经通过npm安装安装了jQuery NPMIjQuery 我将导入添加到app.js import $ from 'jquery' 我在package.json上的依赖项 "jquery": "^3.4.1", "phoenix": "file:../deps/phoenix", "phoenix_html": "file:../deps/phoenix_html" 但在控制台中,我有一个错误 未捕获引用错误:$未定义 我的js

Elixir中的双下划线函数

在Elixir中,有一些双下划线函数,如编译前的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。然而,我也看到了一些双下划线\uuuuuu函数\uuuu,它们的命名似乎没有什么神奇的要求。例如,在EXTO中,调用以下函数 Ecto.Schema.__source__(source), Ecto.Schema.__fields__(fields), Ecto.Schema.__as

回旋符号/针/帽操作符(^)在Elixir中的作用是什么?

当我浏览到内插部分时,我正在浏览EXTO文档,其中EXTO使用扬抑(^)符号,如下所示 def with_minimum(age, height_ft) do from u in User, where: u.age > ^age and u.height > ^(height_ft * 3.28) end 让我想知道,它有什么作用?:-) 在Elixir中,pin操作符用于模式匹配,以匹配变量的当前值。您可以在此处阅读更多信息: EXTO将pin运算符更改为mean

无法编译简单的Elixir项目

我正在努力学习戴夫·托马斯的《编程长生不老药》。现在我说到了创建第一个混合项目的地方。HTTPoison刚刚被引入并添加到mix.exs中的应用程序函数中。现在,该项目应该第一次使用iex-SMIX编译。当时,我遇到了ssl\u verify\u hostname的问题。在安装了erlangsrc和erlangdev之后,我现在被以下控制台输出卡住了 $ iex -S mix Erlang/OTP 18 [erts-7.1] [source] [64-bit] [smp:8:8] [async-

Elixir 如何将长生不老药功能存储在EXTO中?

我想要一个数据库表,它有一个“action”字段。我想在现场存储一个长生不老药功能。这可能吗 该函数始终只接受一个参数。这里是我过去使用过的一个Ecto类型,它与上面注释中链接到的@AbM非常相似: deferlangetf do模块 定义类型,do::binary def cast(二进制=>)do 试着做 {:好的,:erlang.binary_to_term(binary)} 接住 _ -> {:好的,二进制} 终止 终止 def cast(any),do:{:好的,any} def加载(

无法理解使用宏Elixir/Phoenix通过导入

我正在使用Phoenix框架并尝试创建一个用于身份验证的插件,但遇到了一个错误。下面是这个示例代码 defmodule ChhutiServer.GoogleAuthController do use ChhutiServer.Web, :controller use ChhutiServer.Plugs.GoogleAuth end # inside lib/plugs defmodule ChhutiServer.Plugs.GoogleAuth do import Plug

Elixir是否支持内省以显示可用功能?

请考虑以下代码段: index使用render函数,它是从use Rumbl.Web,:controller触发的导入中获得的 我知道还导入了其他功能。但长生不老药是否提供了列出它们的方法 我可以在Elixir中列出当前作用域的可用函数吗?您可以从\uuuu ENV\uuuu宏中获得此类信息。提供了it返回的文档 该结构中最有趣的字段是函数和宏,其中包含当前可用函数和宏的列表以及它们的源模块。相关问题:太棒了!在我的Phoenix示例中,raiseinspect(\uuuu ENV\uuuu.f

Elixir Phoenix升级导致put_req_头缺少函数子句

我最近升级到Phoenix 1.1.0,以前通过的测试代码现在抛出了一个错误。测试代码为: test "/api call with invalid unique_code gets an error code", %{conn: conn} do conn = recycle(conn) |> put_req_header("unique_code", "123") |> put_req_header("domain", "cision

Elixir 如何在EXTO查询中创建条件联接?

我有两个模型-User和ApiKey(User有很多api键),我正在尝试创建条件连接。我的意思是,我想用单个查询用户的活动ApiKeys加载。我当前的代码看起来像 query = from u in User, join: a in assoc(u, :api_keys), where: u.email == ^email, preload: [api_keys: a] user = Repo.one(query) Repo.preload

Elixir 您如何限制guardian和phoenix对特定操作的权限

我已将guardian设置为在令牌中对特定权限进行编码,但是,我想在我的UserController中将其限制为仅在特定操作中需要它([:index,:show,:edit,:update,:delete])。我使用控制器顶部的以下行要求整个控制器具有管理员:[:cms]权限: plug Guardian.plug.com,处理程序:Ay.Guardian.ErrorHandler,管理员:[:cms] 这很好,但我想在此添加一个类似于guard的子句(例如,在[:index,:show,:ed

在elixir中缓存昂贵的计算

我有一个elixir中的web应用程序,看起来像这样 defmodule Test do use Plug.Router plug :match plug :dispatch def expensiveComputation() do // performs an expensive computation and // returns a list end get "/randomElement" do randomElement =

如何在Elixir中从字符串中去掉逗号?

我想知道如何从给定的字符串中删除逗号。我的尝试是: st = "1,2,3" String.strip(st, ?,) #=> "1,2,3" 我做错了什么?String.strip/2只删除字符串开头和结尾的字符。我相信你在找我。像这样使用它: String.replace("1,2,3", ",", "") 你也可以这样做: st |> String.split(",") |> Enum.join 当然,最好使用标准工具,但这是另一种选择

Elixir 菲尼克斯这么慢?请帮助改进它的性能

我学习长生不老药只是因为互联网上的很多文章都承诺它的响应时间不到一毫秒。我昨天构建了我的第一个应用程序,我发现它的性能比rails快不了多少。发生了什么事 让我解释一下我的应用程序。它实现了ecto安全密码包提供的基本身份验证机制: 这是我的控制器: defmodule HelloPhoenix.SessionController do use HelloPhoenix.Web, :controller def create(conn, %{ "session" => %{ "u

Elixir 如何使@current_用户在form.html.eex中可用?

我想在web/templates/user/form.html.eex中添加逻辑,根据@current\u user在user#new和user#edit中呈现。但是如果我执行以下代码,我会得到一个assign@current\u用户在eex模板中不可用的错误 <%= if @current_user do %> <h1>Example</h1> <% end %> 例子 如何使@current_user在form.html.eex中可用

Elixir中的自定义类型

我有一个玩具项目,我用它来帮助我学习长生不老药/凤凰 我正在从csv导入一些数据,如果这些记录根据我的变更集是有效的,我想将它们插入数据库 我的问题是,有时通常包含整数的列中的一列会有“n/a”。这会导致变更集无效,这是应该的 我不确定处理这件事的灵丹妙药标准方法是什么 在这些情况下,我只希望将“n/a”转换为0 您通常会为此编写一个进行转换的自定义类型吗 在Rails中,我可能会在模型上使用自定义setter或before_save之类的工具来解决这个问题。我会在模型的变更集功能中解决这个问

elixir—当我执行类似'i123'的操作时,会出现编译错误。我做错了什么?

我正在尝试使用I,当我执行类似I 123的操作时,我得到**(CompileError)iex:3:未定义函数I/1 有人能帮我吗?我做错了什么 编辑:这是我的控制台的屏幕截图。您是否将i 123放在您的实际代码文件中或在IEX终端中使用它 如果在IEx中,它应该是开箱即用的,例如: iex(2)> i 123 Term 123 Data type Integer Reference modules Integer iex(3)> 但是,如果要在代码中使用它,比如说方

Elixir 在没有重定向或渲染的情况下放置\u flash?

我有一个表单供用户输入信息。如果添加成功与否,我希望弹出一条消息(没有页面重定向,比如AJAX调用)。问题是出现了Plug.Conn.NotSentError错误 模板: <%= form_for @changeset, foo_path(@conn, :create), fn f -> %> <div class="form-group"> <%= text_input f, :email, placeholder: "Email", class

Elixir EXTO:选择在特定日期插入的记录

我有一个非常简单的问题: 以及移民: defmodule MyApp.Repo.Migrations.CreateUser do use Ecto.Migration def down do drop table(:users) end def change do drop_if_exists table(:users) create table(:users) do add :name, :string timestamps(

Elixir phoenix从渲染中的html输出中剥离空白

有人知道如何在凤凰城用长生不老药从空白中去除html吗? 我确实看到了String.strip,但我检查了渲染返回的内容,它不是字符串。。。我正在考虑如何将其放在模板中。。但我真正想做的是去掉html标记之间的所有空白 为什么? 这样我就可以在css:D中使用:empty了 示例 <div id="hide-me-if-no-content"> <%= content, some times, this actually spans multiple lines, ther

加入通道上的Elixir/Phoenix pass有效负载

频道具有authorized?功能,我想在加入频道时传递生成的本地令牌,以便验证用户的角色,如下所示: const data = { token: localStorage.getItem('phoenixAuthToken') }; channel.join(data).receive('ok', (response) => { ... }); }); 但是,在我的频道设置中,我似乎在加入时没有收到来自客户端的任何信息:

Elixir 长生不老药:模式中的多个关系

我有下面的模式 defmodule Message do use Ecto.Schema schema "messages" do belongs_to :user, FPL.Club, foreign_key: :user_to_id belongs_to :user, FPL.Club, foreign_key: :user_from_id end end 如您所见,我想在这里定义两个属于的关系,分别对应于发送消息的用户和发送消息的用户。在消息表中,我有两个名

Elixir 将多个可链接的update\u all调用减少为单个update语句

假设我有一个用于用户的模块,它有两个函数,接受变更集并向其添加变更,如-> defmodule MyApp.User do def confirm(changeset_or_struct) do changeset_or_struct |> Ecto.Changeset.change(confirmed: true, confirmed_at: Timex.now()) end def update_session(changeset_or_struct,

Elixir 如何创建字符串模板:";一些字符串{some_stub_var}";?

我想在其中创建一个存根模板: my_str_template = "some string {some_stub_var}" # note that there's no variable "some_stub_var" in the current scope 因此,稍后在我的应用程序中,我可以执行以下操作: my_str = my_str_template.format(some_stub_var: "my_real_string_var_123") 1) 怎么做 2) 它叫什么

Elixir 具有密钥派生函数的AES解密

我正在将一个解密函数从.NET移植到elixir,作为概念证明 有谁能给我一些关于Erlang加密模块是否可行的指导吗?我已经使用了块_decrypt函数,但始终无法得到正确的结果。我想我的问题是因为钥匙和IV不正确 我不确定如何从加密的纯文本值派生字节数据,以传递到块\u解密 以下是我尝试解密的长生不老药代码: defmodule TestApp.Decrypt do @iv <<30,64,180,159,172,197,92,10,197,3,39,75,53,92,93,

Elixir #EXTO.Association.NotLoaded问题

我有这个模板,它的工作很好 <h2>Listing videos</h2> <table class="table"> <thead> <tr> <th>User</th> <th>Url</th> <th>Title</th> <th>Description</th>

Elixir 如何使用:observer.start with my app?

我正在尝试使用:observer.start检查我的应用程序,我尝试了交互式elixir控制台: iex -S mix 当然,这将加载所有依赖项并启动应用程序,然后我可以使用::observer.start 但我注意到我无法使用浏览器浏览应用程序,例如:localhost:4000 只有使用以下方法启动应用程序,我才能浏览该应用程序:mix phoenix.server 问题是,当应用程序以iex-S mix启动时,我如何浏览该应用程序 编辑 所有这些过程是什么?我什么都没做就启动了应用程序?

在Elixir中是否可能根据混合环境有条件地呈现代码?

基本上类似于C/C中的ifdef/\else/\endif++ 我希望在mix test期间出现一些代码top,并在生产中删除,因此我不需要在经常调用的代码段中测试mix.env==:test 我知道这被认为是一种不好的做法,但它是否可能以及如何实现?在构建发行版时,Mix是可用的。在版本本身中,它不是。如果确定要从发布版本中删除代码,请使用宏: defmodule strippendrelease do defmacro fun(do:block)do 如果Mix.env==:测试do 块#A

Elixir 深度合并映射与Enum.map

我有以下功能: defmodule TestQuery do def build_query() do Enum.map(["test1", "test2", "hello"], fn item -> query(item) end) end def query(item) do case item do "test1" -> %{"test1" => 1} "test2" -> %{"test2

从elixir中的嵌套映射中删除?

我想在Elixir中放置、获取和更新嵌套地图,使用put_in、get_in、和update_in,但如何“删除中的_” 假设我有这个嵌套映射,我想删除键:c及其关联值 iex(1)> mymap = %{:a => %{:b => 1, :c => 2}} %{a: %{b: 1, c: 2}} 我如何以有效的方式回到这一点 {%a: %{b: 1}} 你在找我。该函数返回弹出值和移除弹出值后的其余值。您可以通过管道连接到|>元素(1)忽略弹出的值 或 你在找我。

Elixir是否真的需要两组相等运算符(普通运算符和严格运算符)?

我正在学习Elixir,刚刚学习了两对相等运算符,==,=和===,和==。我认为Elixir有两组相等运算符是一个错误。他们为比较int和float的情况创建了一个“严格”相等运算符。请注意,当比较两种不同的类型时,按值比较int和float的这种情况是运算符正常工作方式的一个例外,这会导致类型比较,而不是值比较。 所以我们对类型比较规则做了一个例外,并添加了两个操作符来支持该例外。回报是多少?因此,可以用价值最为糟糕的编程实践来比较英特斯和浮标。 严格等式算子的作用应该存在于正规算子中。这样

Elixir 无法识别Guardian.Plug.com

我正在尝试使用Guardian在我的Phoenix应用程序中实现基于权限的安全性。我在网上找到了一些示例,但当我尝试实现它们时,我无法克服这个错误: ** (UndefinedFunctionError) function Guardian.Plug.EnsurePermissions.init/1 is undefined (module Guardian.Plug.EnsurePermissions is not available) 我已经安装了一个基本的身份验证工作。我不知道我错过了什

Elixir 为什么日志记录时出现HTTP错误?

我刚刚将我的Elixir/Phoenix应用程序升级到Elixir 1.9.0,Phoenix 1.4.10 木材记录器后端在升级后停止工作。在登录到Timber时,我总是遇到500个HTTP错误 我的新木材包版本是3.1.0。 旧的(Elixir 1.6+上的木材2.8.0,Phoenix 1.3+)运行良好 我在这里试过医生: 事实证明,该部分中的POST和curl示例也返回了500个错误 有人有同样的问题吗?如有任何建议,我们将不胜感激 谢谢。我想出来了 示例中的URL是 当我在木材中创建

Elixir 以一种快速的方式将原始sql转换为单一结果

作为一个例子,我现在正在使用以下内容 query=”“” 选择重元组 作为近似行数 来自PGU班 其中relname='表'; """ 查询 |>Repo.query!() |>Map.get(:行) |>List.flatte() |>表1.first() |>trunc() 它执行查询,接收结果 %Postgrex.Result{ 列:[“近似行数”], 命令::选择, 连接id:17152, 信息:[], 行数:1, 行:[[1494644.0]] } 选择行[[1494644.0]]

有没有办法在Elixir中将函数体作为字符串获取?

假设我有一个如下的函数定义: def my_函数(参数)do 做某事(争论)+2 结束 现在,我期望的输出是这样的: >函数体(&my\u函数/1) “做某事(论据)+2” 有什么方法可以实现它吗?我认为,如果您生成一个发行版,那么源代码就不再用于执行此操作,但是在测试环境中,您可以提取给定函数的AST,如下所示: def fetch_ast(模块,乐趣)do 模块.\uuuuu信息\uuuuuu(:编译)[:源代码] |>to_string() |>File.read!() |>Code.

上一页 1 2 ...  52   53   54   55    56   57   58  ... 下一页 最后一页 共 125 页