我正在阅读戴夫·托马斯的书,目前正在探索长生不老药的治疗方案。我知道我可以使用@fallback\u返回到任何true的通用协议实现。例如:
defprotocol Caesar do
@fallback_to_any true
def encrypt(string, shift)
def rot13(string)
end
defimpl Caesar, for: BitString do
def encrypt(string, shift) do
# impleme
有人能给我举个例子,说明如何使用Elixir从NTP服务器获取NTP统计数据吗?这里有一个Erlang中的例子,应该很容易移植到Elixir。它显示了如何分解NTP数据包,但是没有实现实际的NTP算法。github.com/mnp/erlang-ntp
我想使用ANSI转义序列来控制格式,将二维列表呈现为一个漂亮的表格输出
因此,根据这些数据:
data = [
[ 100, 20, 30 ],
[ 20, 10, 20 ],
[ 50, 400, 20 ]
]
我想输出如下内容:
100 20 30
20 10 20
50 400 20
Table.format(data, padding: 2) |> IO.puts
非常感谢如果每个项目的长度小于7个字符,则可以使用制表符实现间距:
iex>
我目前正在学习Phoenix框架,在通道推送中获得方法匹配中的句柄时遇到了一些问题
我的javascript(技术上是typescript)如下所示:
let channel = this.socket.chan('rooms:lobby', {});
channel.join().receive('ok', channel => {
console.log(`Joined the channel`);
});
// channel.on("feed", payload =>
我目前正在使用aurelia作为我的phoenix应用程序的前端框架。我想将项目根目录中的jspm_packages文件夹指定为priv/static文件夹之外的静态目录。有没有办法配置plug来实现这一点?简单的回答是:您不应该这样做
答案很长:在生产中,Elixir应用程序关心两个目录:1。ebin(这是您放置编译代码的地方)和2。priv(在生产中运行软件所需的辅助文件,如静态文件)。如果您依赖的文件不在这些目录中,则在生产或构建版本中运行时,可能会出现问题。所以我建议你把aurelia的
标签: Elixir
phoenix-frameworkecto
我为users资源创建了身份验证,它工作正常,但现在我想使用user_controller.ex到project_controller.ex的authenticate函数
若我将authenticate private函数从user_controller复制到project_controller,那个么身份验证在projects资源上有效,但我不想在每个控制器中复制此authenticate函数。我需要知道什么是最好的方法来干燥这段代码。我认为路由器是添加身份验证插件的好地方,但我需要知道应该在
关于Phoenix框架:我只是想知道写作和
defmodule MyApp.User do
# some code
end
而且
defmodule User do
# some code
end
稍后,编写User.function要比编写MyApp.User.function容易得多。这是为模块设置名称空间,以避免冲突。想象一下这样一个场景:您调用模块User,然后使用一个名为User的库,该库还定义了一个User模块。你会遇到碰撞
您可以在使用用户模块的模块中执行以下操作:
d
这个长生不老药脚本输出一些数字
# output_numbers.exs
(1..1_000) |> Enum.each(fn (i) ->
IO.puts i
end)
如果我运行elixir output_numbers.exs | head-10,我会得到一个错误:
** (ErlangError) erlang error: :terminated
我认为这是因为head-10一旦有10行代码,就会关闭它的STDIN管道
在这种情况下,我如何才能优雅地终止?Rescu
我有几个插头,我每次都打。我想创建一个插件,为我调用所有这些插件。我该怎么做呢
这就是我目前尝试做的:
defmodule MyApp.SpecialPlug do
import Plug.Conn
def init(default), do: default
def call(conn, default) do
plug SimplePlug1
plug SimplePlug2, args: :something
end
end
但是它抛出了一个编译器错误
尝试使用IEx.pry调试项目时,我发现需要使用--werl标志。我想请任何有可能解决本次讨论的人:
我当前的项目有多个模块,并使用Plug.Router。我意识到,在这种情况下,窥探可能不是最好的调试技术。还是
我很想学习如何使用pry进行调试,所以我测试了一个与pry非常类似的简单案例。简而言之,从流程环境中窥探变量需要IEx外壳在编译时运行。这适用于单个模块,如上面链接的示例中所示;但是,我当前的项目要求我混合项目目录。请更正,也许有一种详细的方法可以在erlang控制台中编译和运行项目
我正在用EXTO做一个小的Cli程序,当我查询一些结果时,我会得到一个列表,在我学习Elixir的过程中,我在终端中做不到的事情是格式化返回列表的函数的输出
当我运行Repo.all(从条目中的u开始,选择:u.title)时,我得到如下列表:
[“测试标题”、“第二标题”]我想将输出格式化为:
*****
test title
*****
second title
列表中的每个项目都有一个分区,但我不知道如何准确地进行分区,也不知道如何有效地进行分区。我试过列表理解,但是。。。它返回一个列表
我想将Base64 PNG图像流(通过捕获网络摄像头生成)发送到凤凰频道
据我所知,通道中方法中的handle_只接收json字符串,所以我目前所做的是使用以下方式发送它:
channel.push(“流:视频”,JSON.stringify(数据))
就像下面的片段:
var delay = 100
if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) {
delay = 40
console.info
当我在本地运行Phoenix应用程序时,所有请求的基本URL类似于http://localhost:4000。在生产中,它类似于https://example.com/
我想把这个基本URL传递给我的JavaScript。我怎样才能得到它
注:
我不想检查conn;这是我想在编译或引导时设置的,而不是在请求时设置
我知道我可以检查Application.get_env(:myapp,myapp.Endpoint)[:url][:host]],但这不包括方案(http或https)或端口。如果我
标签: Elixir
phoenix-frameworkabsinthe
我对菲尼克斯1.3+苦艾酒有问题
我尝试以下代码:
schema "urls" do
field :path, :string
timestamps()
end
object :url do
field :id, :id
field :path, :string
field :inserted_at, :datetime
end
它使用id和path工作,但在插入时失败,原因是:
Inserted_at :datetime is not defined in your
我正在尝试实现一个非常简单的GenStage,目的是确保我理解它,并且在开始介绍我的特定应用程序逻辑之前能够让它工作。我从制作人那里得到一个返回数据错误。我认为数据是正确的。我已经读到,返回的元组中的第二个值必须是一个列表,它看起来是一个
以下是我的GenStage实现:
defmodule CoachActivity.Event.Producer do
use GenStage
def start_link(page) do
GenStage.start_link(Coach
标签: Elixir
phoenix-frameworkelixir-poison
我试图返回无效的变更集
当做
conn
|> put_status(422)
|> put_view(Elemental.Auth.ErrorView)
|> render("422.json-api", %{data: changeset})
或
使用JaSerializer
我越来越
(Poison.EncodeError) unable to encode value: {"has already been taken", []}
这是出乎意料的。它早就开始工作了。
ruby上有一个应用程序可用于压缩阵列:
2.3.1 :001 > [3340546, 3340547].pack("L*")
=> "\x02\xF92\x00\x03\xF92\x00"
2.3.1 :002 > "\x02\xF92\x00\x03\xF92\x00".unpack("L*")
=> [3340546, 3340547]
有没有为Elixir上的阵列制作包的选项?有!在Elixir中,我们使用二进制模式匹配来实现这一点。Ruby的pack/u
我发现我想经常更新一个结构,然后通过管道将结果传递给另一个函数。更新我的结构的需要不断破坏我的管道
我发现自己经常这样做:
my_struct = %{my_struct | my_field_in_struct: a_new_value} |> my_funct1
my_struct = %{my_struct | my_field_in_struct: a_new_value} |> my_funct2
my_struct = %{my_struct | my_field_in
如何在Elixir中从Enum.max_by/3返回函数值和返回的元素
我有这个案子:
def fuzzy_match(x, items) do
m = Enum.max_by(items, fn i -> TheFuzz.compare(:jaro_winkler, x.desc, i.desc) end)
IO.puts("fuzzy: #{inspect(m)}")
m
end
仅仅知道最佳匹配项是不够的,我还需要知道匹配阈值保持和消除0.7以下的不良匹配
标签: Elixir
anonymous-functionfirst-class-functions
我可以直接在交互式shell中编写匿名函数,如下所示
iex> total_bottles_milk = fn total -> total * 2 end
iex> total_bottles_milk.(2)
但是,如果我在外部文件中写入并在交互式shell中运行,则会显示编译错误
我的文件名和目录路径是lib/expense.ex
下面是我的代码
defmodule Expense do
total_bread_slices = fn total ->
我正在开发一个多语言应用程序,它允许用户输入多种语言(例如,英语、汉语和韩语)
对于注册用户,我有validate_length函数来验证用户名和姓氏的长度
然而,我的问题是,我不希望计算英文字母和中文字母的结果相同。例如,如果我计算“David”和“David”的长度器防雷器防". 尽管汉字占用更多的空间,但它们都返回5
目前,Ecto支持通过码点和字集计算长度,但这两种方法都可以满足我的需要
我如何做到这一点?甚至可以计算字母的数量并通过需要多少“字节”进行验证吗?您可以做的一件事是使用正则
我对在Elixir中实现Genserver相当陌生。我有一个案例,我试图管理一些状态,Genserver在这个案例中工作得很好。但是,在测试Genserver时,我遇到了一些复杂问题
我有两个测试似乎是相互碰撞的。我有一个针对Genserver的单元级测试,还有一个更高级别的测试,其中我调用的函数使用Genserver和模块。以下是我的两个测试用例:
第一:
如果我单独运行它,它每次都会通过。但如果我运行此测试,它将定期中断:
第二:
在我的distribute/1函数中,实际使用的是Gense
几次失败的尝试和文档使我相信,我必须在mix项目中的test/test\u helper.exs或嵌套在模块下的另一个test/*.exs文件(使用ExUnit.Case)中定义helper模块。有没有一种方法可以在它们自己的文件中定义这些模块,以便测试可以使用它们,而不会使test/test\u helper.exs混乱,或者将它们放在lib/下?在您的mix.exs文件中,您可以在项目声明中为不同的环境定义不同的路径(内部Mix.Project.Project/0回调,键elixirc\u路
给定以下模式,我想计算:games\u won/:games\u played,将其填充到:percentage\u won并按:percentage\u won排序。如果我使用选择_merge并省去“AS?”,我设法计算了该值,但如何在order_by中引用该计算列
schema "players" do
field :name, :string
field :games_played, :integer
field :games_won, :integer
field :p
标签: Elixir
phoenix-frameworkecto
我有以下错误,当我从表单中获取参数,然后使用Multi.insert(:insert,game)
我有这样的情妇。然后将团队id放在游戏地图上
game = %Game{team_id: attrs["team_id"], ....}
Multi.new()
|> Multi.insert(:insert, game)
|> Repo.transaction()
当然,我认为类型error team_id应该是整数,但不是字符串。
我的问题是,如果有很多字符串,我应该将每个
我有一些宏定义具有特殊字符的函数。特别是“:”和“.”。可以为包含这些字符的函数编写规范定义吗
defmodule UniqueCharacters do
defmacro make_wild_function_name do
函数名=字符串到原子(“baz:foo.bar”)
引述
def unquote(函数名)(),do::确定
结束
结束
结束
defmoduletestspecdo
导入唯一字符
#下一行不行
@spec baz:foo.bar()::好的
make_wild_func
我在Phoenix应用程序中使用。表单中的错误标签让我头疼:
<div>
<label for="password" class="block text-sm font-medium text-gray-700">
Passwort
</label>
<div class="mt-1">
<%= password_input f, :password, r
标签: Elixir
phoenix-frameworkphoenixelixir-iex
我想替换/检查elixir中用户名的字符。因此,在易趣的竞买人列表中,最终应该是这样的:
elixir中有字符串替换函数,但我是regex的新手,不知道elixir regex支持什么。那么我如何才能做到这一点呢
iex> String.replace("username1234", someregex, "***")
"u***4"
当然,您可以使用正则表达式“替换除第一个和最后一个符号以外的所有符号”来完成此任务
Stri
在phoenix应用程序中,我正试图实现这样的授权
#= Bouncers.Bouncer.check_entry(conn, %MyApp.User{})
#=> true
defmodule Bouncers.Bouncer do
alias Bouncers.Areas
def check_entry(conn, resource) do
verify(resource, conn.path_info)
end
defp verify(resource,
于是,我和一些朋友围绕这本长生不老药文档中的一段话展开了一场对话
在Elixir中,可以抛出一个值,然后捕获它。抛接球
保留用于无法检索的情况
值,除非使用抛出和捕获
这些情况在实践中非常罕见,除非
与未提供适当API的库接口
哪些情况需要使用try/throw/catchvs.try/rescue?这是为了与一些现有的Erlang库接口吗?页面上的示例显示了Elixir代码,这让我觉得有点困惑
我应该寻找的“合适的API”是什么?我的意思是,这是一个协议吗? < P>我认为Actudio/Ex
我的Phoenix应用程序正在达到Erlang VM的最大进程限制,为特定Phoenix应用程序(或者更好,仅为MIX_ENV=PROD)指定erl(如+p)自定义选项的最佳方式是什么?有没有办法通过应用程序的配置文件来实现这一点?或者如果没有,可能在我运行“mix phoenix.server”时您可以使用elixir运行带有--erl标志的应用程序:
elixir --erl "+P 10000000" -S mix phoenix.server
如果您想要一个shell,可以使用iex:
标签: Elixir
selenium-chromedriverhound
我正在提交一个登录表单,并尝试在之后使用elixir/hound捕获HTML。提交后,我运行page\u source,什么也得不到。如果我等待一秒钟(等待页面完成加载),那么我将返回html
有没有办法让hound等到页面加载完毕
我目前正在做::timer.sleep(2000),作为一种解决方法,希望找到更好的方法://这就是我所做的:
创建一个函数,每100ms重复检查一次测试条件,在本例中,我使用
您使用什么代码来导航/发布表单?我正在导航到我的登录页面,添加用户名/密码,然后运行单
我有一个单独的元素/编号,我正在将其输送到枚举([])中,但Elixir抛出**(Protocol.UndefinedError)协议枚举未为90实现
90 |> Enum.into([])
v = 65
v |> Enum.into([]) Enumerable not implemented for 65
第一个参数应为可枚举,因此出现错误
要将单个元素导入列表,请使用
也许您正在寻找List.wrap/1,而不是|>Enum.into([])?
65 |> List.
我想像这样使用“in”操作符:
array=[{1,“Jean”},{2,“Marc”}]
从(x)到人,
其中:^数组中的片段(“(?,?)”,x.id,x.first_name)
|>回购协议`
但当我这样做时,我会得到以下错误:
** (FunctionClauseError) no function clause matching in :lists.zip/2
以下是代码为的回购协议:
您可以运行mixetest/models/people\u test.exs查看错误。添加了一个
标签: Elixir
phoenix-frameworkecto
关于长生不老药和凤凰,我还是个新手。我正在通过创建API学习长生不老药和凤凰。但是当我使用Timex库时,我在模型查询方面遇到了一个问题。我想补充一点
def find_users_randomly(query, user_id, count \\ 10) do
from a in query,
where: a.id != ^user_id,
where: is_nil(a.last_time_get_msg_at),
or_where: 45 < Timex
我想看看phoenix1.3-dev。我从中克隆了phoenix,并按照phoenix/installer/README.md构建归档文件
phoenix/installer/README.md(供参考)
我通过mix phx.new blog创建了一个新的phoenix应用程序,但当我试图通过mix phx.gen.html Post posts title body:text创建一个简单的html框架时,我收到了以下错误消息:
** (Mix) Expected the schema arg
标签: Elixir
phoenix-frameworkecto
我有以下两种型号,User和Post。我正在尝试创建一个与用户有外键关系的帖子
我的模式:
@primary_key {:id, :binary_id, autogenerate: true}
schema "accounts_users" do
field :username, :string
field :email, :string
field :password_hash, :string
field :password, :string, virtual: true
我有以下路由器。例如:
scope "/api", MyAppWeb do
get "/activate", SubscriptionController, :create, as: :activate_account
end
scope "/", MyAppWeb do
get "/*path", AppController, :index
end
SubscriptionController.create/2:
def create(conn, %{"token" => t
我有以下清单:
l = [
%{id: 1, name: "aash", possess: "car"},
%{id: 1, name: "aash", possess: "bike"},
%{id: 2, name: "rahul", possess: "scooter"}
]
我想将其转换为以下格式:
ans = [
%{id: 1, name: "aash", possess: ["car", "bike"]},
标签: Elixir
phoenix-frameworkelixir-poisonhttpoison
我刚接触Elixir/Phoenix,尝试通过构建一个小应用程序来学习
我正在从第三方API获取数据,并不断出现以下错误
(ArgumentError) argument error :erlang.iolist_to_binary([%{"24h_volume" => "1000", "name" => "some_name"},{...}])
我的控制器中有:
HTTPoison.start
%HTTPoison.Response{body: body} = HTTPoiso
标签: Elixir
phoenix-frameworkecto
我正在使用Phoenix创建一个简单的API Rest。
我在执行命令时遇到以下错误:mix-exto.migrate
22:25:14.197 [error] Postgrex.Protocol (#PID<0.193.0>) failed to connect: ** (Postgrex.Error) FATAL (invalid_catalog_name): database "api_example_dev" does not exist
** (DBConnection.C
在这篇文章的开头,我要说我是长生不老药领域(以及一般的函数式编程)的新手。我目前正在学习字典类型,遇到了structs。根据我的书中的说明,我定义了这个:
defmodule Subscriber do
defstruct name: "", paid: false, over_18: true
end
在那之后,这本书在本章的其余部分都在iex中运行,但我希望我的书在一个文件中。我尝试创建此结构的实例(所有值都设置为默认值),如下所示:
这个游戏让我成为一个编译错误:
CompileEr
我有地图:
%{ HEADER: "000000000 000000000000 00000000 ",
AM01: %{"C4" => "11111111", "C5" => "1"},
AM04: %{"C2" => "22222222", "C6" => "2"}
}
如何将此映射转换为如下所示的字节:
"\x02\x1e000000000 000000000000 00000000 \x1e\x1cAM01\x1cC411111111\x1cC
所以现在我用的是:
dynamic(
[u],
ilike(
u.name, ^"%#{String.replace(term, "%", "\\%")}%"
)
)
这个词是一个简单的字符串,就像charlie。我如何将其与一系列术语结合使用,比如:[查理,丹尼斯,弗兰克]-甚至没有片段也可能吗?好吧,这在某种程度上是可能的,只需要一点元编程。幸运的是,允许您在查询中使用自己的宏,因此我们只需要构建自己的宏,将几个iLike与OR粘合在一起
这里有几个陷阱。首先,我们应
例如,如果您有一个模块
defmodule Foo do
# lots of "unknown" functions
end
如何为该Foo创建包装器模块,如:
defmodule Bar do
# wrap all functions in Foo
end
但是在Bar中,我想公开Foo中的所有函数,但另外我想在每个函数中添加一些代码,特别是我想尝试/捕获一个可以在任何Foo.error异常中显示的特定错误。。。我不想为Foo中的每个函数添加一个函数,因为这样做会重复
我可
标签: Elixir
phoenix-frameworkplug
在我的项目的所有控制器操作之后,我想向Elasticsearch发送一些conn信息,例如:控制器操作响应、请求参数和端点
如果在操作解决后需要使用控制器返回的conn结构,我们可以做什么?我在应用程序中创建了一个插件:
defmodule MyAppWeb.Plugs.RequestLogger do
@moduledoc false
alias Plug.Conn
def init(opts), do: opts
def call(conn, _opts) do
所以读这本书看起来像:
和都有多个:一些模式名称,通过:[……]和多个到多个由一个单独的联接表支持
两者之间的唯一区别是,您可以向“第三个联接表”添加额外的列,这是使用多对多联接表无法做到的
在使用习惯用法和数据库建模/支持数据的方式方面是否还有其他差异?如果您想在联接表上灵活添加列(或元数据),似乎总是更喜欢使用has\u-many-through关系。has\u-many是一对多,many\u-many是多对多。我认为您是正确的-在Ruby on Rails中也是如此,我经常喜欢通过使用,这
纯长生不老药问题:如何在嵌套在主地图中的地图中添加值?
嵌套贴图的数量不是固定的
在Phoenix上下文中,问题是如何在参数和嵌套参数中添加值
如何做到这一点:
%{
"fname" => "",
"lname" => "",
"addresses" => %{
"0" => %{
"address" => ""
}
},
"phone_numbers" => %{
"0" => %{"number
标签: Elixir
phoenix-frameworkecto
我提出这个问题:
query = from i in MyApp.Image, where: i.deleted_at >= ^Timex.beginning_of_day(date), where: i.deleted_at <= ^Timex.end_of_day(date), select: i.path, order_by: [asc: i.deleted_at]
我得到62个结果,但它将在前50个结果之后将它们截断为…,用于其余记录:
50个结果中的最后一个
"image
在python中,我们可以将一个函数传递给另一个函数,如下面的示例代码
def digits(n):
return list(map(int, str(n)))
def digit_cube(n):
return list(map(lambda x: x ** 3, digits(n)))
长生不老药也能做到吗?如果是,如何传递匿名函数
f=fn e->e*2结束
枚举映射([1,2,3],f)
或者使用
defmdo模块
def dbl(e),do:e*2
def map
上一页 1 2 ...
56 57 58 59 60 61 62 ...
下一页 最后一页 共 125 页