我试图安装Addict,因此我在mix.ex的最新版本中添加了以下内容(如十六进制):
然后,我运行了mix reps.get并得到一个错误:
查找与ecto要求冲突的替代方案
From mix.lock: 1.0.0
From addict v0.1.0: ~> 0.9
** (Mix) Hex dependency resolution failed, relax the version requirements or unlock dependencies
我尝试在mix.lo
Ruby中的Elixir新手,我正在尝试使用以下代码打印地图的数组值:
映射脚本.ex
list = [0, 1]
map = %{0 => [1, 2], 1 => [2, 3]}
Enum.each list, fn n ->
IO.puts map[n]
end
输出:
^A^B
^B^C
我做错了什么?Elixir看起来与Ruby相似,但其行为不同….您应该使用IO.inspect而不是IO.puts来打印值的内部表示:
iex> IO.puts [1,
标签: Elixir
phoenix-frameworkecto
我在试着用长生不老药测试一个属于协会的人
假设我有两个模型,一个产品和一个产品类型。产品属于一种产品类型
defmodule Store.Product do
使用Store.Web,:model
模式“产品”是什么
字段:名称,:字符串
属于:类型,Store.ProductType,外键::产品类型\u id
时间戳
结束
@必填字段~w(名称产品类型标识)
@可选_字段~w()
def变更集(模型,参数\\:空)do
模型
|>强制转换(参数、@必填字段、@可选字段)
结束
结束
defm
我已经这样定义了模块和结构:
defmodule User do
defstruct [:id, :name, :email, :photo]
def labels, do: [:user]
end
有一个labels方法,这样我就能够映射到数据库记录和从数据库记录映射到数据库记录。如果我需要在数据库中插入%User{}结构,我可以获取User.\uuuuu struct\uuuuuu属性并在其上调用labels,这样我就知道记录需要什么标签
然而,我不知道如何走另一条路。。。假设我
检查参数是guard子句中的列表还是键值对列表的最佳方法是什么
我提出的解决方案只是抓住头部进行检查,但我觉得一定有更好的方法
def stuff(items) when is_list(hd(items)) do
something
end
但我觉得一定有更好的办法
是的,有。像这样使用模式匹配:
def stuff([head | _]) when is_list(head) do
something
end
这不会检查项是否是列表的列表,它只检查第一个值。即使项为[[“a”
为什么这不起作用:
iex(2)> Enum.map(["the", "huge", "elephant"], String.length)
** (UndefinedFunctionError) function String.length/0 is undefined or private.
但这确实:
iex(2)> Enum.map(["the", "huge", "elephant"], fn x -> String.length(x) end)
[3, 4,
我想插入一组类似的实体,并一次性获得每个实体的id。我正在尝试这个:
q1 = "question1"
q2 = "question2"
q3 = "question3"
q4 = "question4"
Enum.each([q1, q2, q3, q4], &(Repo.insert!(......)))
# working with q1 and id of q1
# .......
# working with q2 and id of q2
# .......
# a
我不熟悉长生不老药和凤凰。现在我在凤凰城的静态资产方面遇到了麻烦
我想在我的页面中添加一个js文件,并在我的模板中添加以下代码:
<script src="<%= static_path(@conn, "/js/test.js") %>"></script>
然后在web/static/js/test.js上创建一个js文件
但是,我得到了关于test的错误。在浏览器控制台中找不到js
我注意到有一个priv/static/js文件夹,我尝试在priv/
标签: Elixir
adminbackendphoenix-framework
我正在为凤凰社工作。成功完成标准安装后,我创建了一个User资源,其中包含一个名称和一个化身(它将引用S3上的一个文件)
>mix phoenix.gen.model用户名:string化身:string
>混合admin.gen.resource用户
modules: [
MyApp.ExAdmin.Dashboard,
MyApp.ExAdmin.User
]
>iex-S mix phoenix.server
效果很好。现在,我想添加修改create函数的等效项,该函数将
我希望能够在客户端调用UserController的create方法时创建用户和电子邮件模型。正确的方法是什么 对于insert,您可以直接填充关联,只需将数据传递到Repo.insert
在“改进的协会和工厂”的第7章中对这一特点进行了很好的讨论
用户是否通过“所属”和“有一个”或“有多个”连接到电子邮件?您能否显示传入参数映射的示例?您需要这是一个完全工作或失败的事务吗?
Repo.insert! %User{
name: params["name"],
email: %Email{
我有一台Vowpal Wabbit服务器,在特定的IP和端口上运行。我可以从命令行与它交互,如下所示:
echo "|c country_US" | nc 10.228.14.116 26542
0.512143 <-- this is the response
nc 10.228.14.116 26542 <-- just waits forever
所以我的问题是:如果我的服务在TCP上正确运行和响应,我如何使用gen_TCP连接到它
我试着跟着导游走
更新错误警报-
标签: Elixir
default-argumentsarity
例如,Integer.parse/2函数的默认基值为10,而String.to\u Integer/1和String.to\u Integer/2都存在,第二个用于需要指定base时
有什么理由这样实施吗?
什么时候应该使用其中一个来定义函数
我假设的答案是,不同的算术在实现上存在一些实际差异,而默认值版本共享相同的实现。但是,我不知道为什么在这种情况下会有不同的实现,具体来说。在封面下基本上是一样的。在Elixir中指定默认参数时,会创建两个函数。arg设置为默认值的一个arity less和
我正在创建一个应用程序,它将对用户进行身份验证,并将用户转发到一个重定向URL,该URL被传递到第一个get请求中
流程如下:
1.用户单击应用程序中未托管的静态URL。
2.身份验证请求(GET)(参数=重定向URL)
3.(用户提交表单)->(身份验证)(POST)(参数=重定向URL&用户&通行证)
4.在服务器上进行身份验证,并将其转发到重定向,或转储到无效的登录页
我的问题是:
如果用户已在N timespan中成功进行身份验证,我不想显示登录页面。我可以用genserver处理这个逻
我的操作系统是最新的macOS high sierra。我通过自制安装了elixir和所有依赖项。我创建了一个新的Phoenix应用程序。它显示出一些错误。实时重新加载不起作用。以下是信息
[error] Can't find executable `mac_listener`
[warn] Could not start Phoenix live-reload because we cannot listen to the file system.
You don't need to worr
为了进行测试,我想做一个模拟,正如JoséValim所描述的那样
但我一直在犯“CaseClauseError”的错误。我做了一个简单的项目,如果有兴趣
使用Application.get_env to将模块绑定到模块属性时,例如
defmodule Att do
@file Application.get_env(:att, :file_module)
def hello do
file = Application.get_env(:att, :file_module)
我有一个函数,它是一个名为Sandbox的结构列表。见下文:
defmodule Sandbox do
defstruct description: nil, chance: nil
def all, do: [
%Sandbox{
description: "Description 1",
chance: [1..40]
},
%Sandbox{
description: "Description 2",
ch
我的流程类似于:
all_feed_ids
|> Flow.from_enumerable
|> Flow.map(&download_feed)
|> Flow.flat_map(&extract_feed) # Creates many items per feed
# |> Flow.map_state(&bulk_insert_items)
|> Flow.map(&download_item)
|> Flow.
关于长生不老药Sips 33-撬:
当我尝试使用IEx.pry时,我有一些基本的东西如下:
require IEx
defmodule IexPryTest do
def add(a, b) do
c = a + b
IEx.pry
c
end
end
我得到了这个撬动错误:
iex(1)> IexPryTest.add(1, 2)
Cannot pry #PID<0.88.0> at lib/iex_pry_test.ex:24. Is
我目前有一个问题处理列表在长生不老药并行。并行性的原因是我正在将结果保存到一个API中,如果我一次将它们全部销毁,它将受到DDOS攻击并关闭
下面的代码应该分割SQL查询的结果,并在一个单独的任务中处理每一行,当所有任务完成后,它应该终止
发生的情况是,触发消息后的第一个任务导致脚本终止。我已经看到了答案,他们将receive放在一个函数中,这个函数一遍又一遍地调用自己,但我觉得必须有另一种更好的方法来处理这个问题
results = Enum.chunk(results, 500)
# Gi
假设我有一个模块:
defmodule Request do
def send(url, body \\ "", headers \\ [], opts \\ []) do
.. some code
end
... other functions ...
end
我只需要导入send函数,所以我会这样写:
import Request, only: [send: 4]
但这里的问题是,如果使用send函数仅传递url参数并接受其余参数的默认值,编译器将给我一个错
我刚刚接触长生不老药
生成hmac哈希后,我得到了一个位字符串:
:crypto.hmac(:sha512, secret, data)
Sign: <<104, 155, 224, 193, 121, 129, 237, 103, 233, 236, 161, 130...>>
:crypto.hmac(:sha512,secret,data)
签名:
现在,我必须将其转换为字符串,但不知道具体转换方式
有没有Elixir/erlang模块可以直接执行此操作?哦,我
我试着从这本书上做这个练习
目标是从随机的.txt文件(提供的)中读取一组单词,然后找到所有以D开头的单词,并将这些单词大写,然后只返回它们。这就是我到目前为止所做的:
defmodule ReadFile do
def findD(contents) do
newArray = Enum.filter(contents, (word -> String.starts_with?(word, "D")))
|> Enum.map (word -
客户端发送以下JSON:
{"User": {"name": "Jhon", "nationality", "brazilian", "gender": "male"}}
如何分别获取JSON、每个字段和值,以便在控制器和ecto查询中使用
自动翻译。您应该能够像这样使用conn.params:
conn.params[“用户”],conn.params[“用户”][“性别”],等等。使用长生不老药:
然后使用:
Poison.decode!(~s({"User": {"name": "Jh
如何在Elixir映射中添加(和删除)键值对?这不起作用:
map=%{a:1,b:2,c:3}
图[:d]=4
添加到地图
使用:
map=map.put(map,:d,4)
#=>%{a:1,b:2,c:3,d:4}
从地图中删除
使用:
map=map.delete(map,:b)
#=>%{a:1,c:3}
您的问题
不要忘记变量在Elixir中是不可变的。
因此,下面的代码没有意义,因为您不能像这样直接更改map或map[:d]的值:
map[:d]=4
解决方案
以下是您可以使
我非常感谢你的帮助,这是我用长生不老药做的第一件事,它让我感到很不舒服
所以我的目的是一遍又一遍地从STDIN中捕获,将用户输入解析为数字。当用户最终点击enter而不输入数字时,他们会得到迄今为止输入的所有数字的总和。简单
下面是我的计划:
defmodule Solution do
def main, do: scan(IO.read :line)
def scan(line), do: scan(IO.read :line, Integer.parse line)
def sc
使用减号运算符比较范围内的日期,并比较日期是否大于EXTO中的日期,正确的方法是什么
def has_valid_date_range(query) do
from ct in query,
where: (ct.end_date - from_now(0, "day")) > 0,
where: (ct.end_date - from_now(0, "day")) <= ct.due_notice
end
def具有有效的日期范围(查询)d
我正在学习长生不老药,需要一些帮助。我有一个简单的应用程序,它使用mnesia(现在不是健忘症)。当我开始记忆时,我会:
:mnesia.create_schema([node()])
:mnesia.create_table(Table, [attributes: [:id, :name]])
:mnesia.start
这将创建一个Mnesia。nonode@nohost目录。我想要的是至少有两个不同的数据库,一个用于测试,一个用于开发。我目前正在使用Mix.env检查这个问题。我计划在每
对于以下查询:
sub_query = from sq in Database.Nestoria,
distinct: sq.lister_url,
select: [sq.place_name,
sq.price,
sq.price_type],
where: fragment("cast(to_char(?, 'YYYYMMDD') AS INTEGER) >= (SELECT cast(to_char(max(inserted_at
标签: Elixir
phoenix-frameworkecto
我在Elixir/Phoenix中运行了一系列复杂的查询。这些目标是使这些查询既可以用于创建新条目,也可以用于更新以前的行。为此,我设想使用一个函数参数来定义我们是否正在更新表。例如,现在我有以下功能:
# Retrieves the stats on the user chargebacks
defp get_chargebacks(%{user_id: user_id} = map) do
query =
from u in Users,
left_join:
标签: Elixir
phoenix-frameworkcalculated-field
下午好
我对长生不老药和凤凰比较陌生;然而,我正在寻找一种方法来计算或执行由多个模式生成的一组值的任何数学运算
i、 e您可以在页面上输入不同产品的百分比,然后在提交时,您可以显示从所有产品中输入的总百分比
我已经在show.html页面上显示了所有单独的百分比,但不确定如何为其执行算术部分
谢谢关于您试图在输入上执行的操作的一些附加信息将非常有用。有一个erlang数学模块,您可以通过执行操作直接从elixir调用:math.pow(2,2),感谢您的回复;例如,用户在一个字段中输入一个项目的
标签: Elixir
phoenix-frameworkgatling
我试图通过gatlingrecorder录制脚本
->点击开始
->将代理设置为地址127.0.0.1和端口8000(在我的系统配置中)
->加载页面:http://185.28.103.176:4000/
->我可以在“已执行事件”中看到一些日志,但在gatling控制台中也可以看到错误和警告:
D:\Downloads\gatling\bin>recorder.bat
GATLING_HOME is set to "D:\Downloads\gatling"
JAVA = ""C:\P
是否可以在Phoenix.Transports.WebSocket中压缩json数据
phoenix channel android和iOS库是否支持gzip压缩?请参阅。还有一篇待办事项的文章。也许,您可以使用该解决方案,它也支持压缩/解压缩
我正在尝试将一些测试/初始值硬编码到seeds.ex中,用于插入的EXTO时间戳,但我遇到了错误:
MyProj.Repo.insert!(%MyProj.MyModel{inserted_at[:month]: 5, name: "nananana", email: "blablabla@gmail.com", tel: "99999999"})
我已经试过使用。而不是方括号,但它是相同的。exto希望在那里有一个结构
有很多种可能性可以根据您现有的内容生成此结构。由于您有一段时间,这应该可
标签: Elixir
phoenix-frameworkphoenix-channels
这就是messenger的facebook用户界面
如果您是用phoenix elixir框架实现的
你会为一次聊天创建一个凤凰频道吗
这将意味着你的客户端移动,网络等。。。必须为每一次聊天打开一个频道
这意味着,如果有2000个聊天,他将不得不打开2000个频道的客户端加载
你会为一个用户创建一个phoenix频道吗
这将意味着你的客户端移动,网络等。。。只需打开一个频道
这意味着,对于每一条传入的消息,您都必须查询房间服务器负载中的所有用户。在消息传递应用程序中,有两个主要问题。管理用户订阅
首先,让我们看看普通列表:iex>z=[:a,1]。
然后是z的第一项,列表。第一个(z),是:atom,它的值是:a
然后,我们创建如下列表:iex>z=[a:1]。现在,z的第一项,List.first(z),是Tuple,它的值是{:a,1}
为什么??有相关的文件吗?Thx:-)[a:1,b:2]是关键字列表的快捷方式,关键字列表是元组列表,其中第一个元素是原子,第二个元素是任何术语。所以它等于[{:a,1},{:b,2}]。您可以在这里阅读[a:1,b:2]是关键字列表的快捷方式,它是
标签: Elixir
phoenix-frameworkex-unit
我在phoenix应用程序中进行了以下测试:
defmodule TattooBackend.Web.API.V1.PasswordControllerTest do
use TattooBackend.Web.ConnCase, async: true
use Bamboo.Test
alias TattooBackend.Web.Endpoint
alias TattooBackend.Accounts.Account
alias TattooBackend.Repo
如果您熟悉Rails,那么在引擎插件中有test/dummyRails应用程序,用于测试等等
我怎样才能把这样的东西放进我的图书馆?我需要凤凰城的应用程序,这样我就可以与一个视图,呈现一些数据从体外模型。我不希望那个虚拟应用程序与我库的其余部分一起编译。从技术上讲,我可以进行单独的回购,但我想知道是否有更好的方法。如果纯粹出于开发目的,最好是在伞式模式下创建Phoenix应用程序,并将库添加为普通伞式儿童应用程序
这样,您可以使用Phoenix,但它与您的lib完全解耦,并像其他用户一样将您的l
我试过了
units=%{}
为了
哪个有效
该代码不会像您可能期望的那样工作。它所做的是在每次迭代中创建一个新映射,但是之前声明的unitsMap不会被修改,因为Elixir中的变量是不可变的
您可以使用into选项和for来创建地图。为此,循环体必须返回键和值的2元组
units = for s <- squares, u <- unitlist, s in u, ????
units=for s我在:%{}中查看了,但我不太明白它是如何工作的。我的理解是,for按照列出的顺序
是否有任何方法可以通过传递颜色的新变量从控制器动态渲染SCS
例如,在RubyonRails中,您可以使用Sass::Engine,但我没有找到Phoenix的任何功能
谢谢你的帮助 使用System.cmd/2(System.cmd(“sass”、[“-i”、“input.scss”、“-o”、一些_文件”))将代码输出到sass可执行文件怎么样?没有Sass的纯Elixir实现,因此调用Ruby版本或libsass可能是您唯一的选择。感谢您的回复,我将尝试类似的方法。祝您有个美好的一天
标签: Elixir
phoenix-frameworkecto
我知道两者的区别assoc_约束使用EXTO模式验证外键约束,foreign__约束使用db
在这种情况下,为什么要使用assoc\u constraint?如果查看and的源代码,您会发现它们以非常类似的调用add\u constraint(私有函数)结束
关联约束:
add_constraint(changeset, :foreign_key, to_string(constraint),
:exact, assoc, {message, []})
add_c
标签: Elixir
phoenix-frameworkguardian
我有一个phoenix应用程序,我想保护除登录和用户创建路由之外的所有路由。为了实现这一点,我使用了Guardian和ComeOnIn软件包。(我试着关注博客)
我设法在会话路由中将令牌发送到客户端,用户的创建也在进行中。
但是,当我想显示所有用户(即用户模块的索引路由)时,我会得到一个身份验证错误(在我的测试中,我还没有gui)
以下是我所做的:
用户控制器:
defmodule WarehouseWeb.UserController do
use WarehouseWeb, :contr
我读了《长生不老药》中不同的弦乐方法
将字符串转换为不同类型e.t.c
是否可以从字符串中删除双引号
假设我们有一个字符串“internal\u join”,我想删除双引号,使其类似于internal\u join
可能吗?退房。大多数编程语言都有一个String.replace方法,允许您替换字符串中的字符
在长生不老药中,它是这样的:
String.replace(~s("inner_join"), ~s("), "")
如果您想知道如何在字符串中嵌入双引号,请查看。它提供了与字符串相同的
在我的Phoenix应用程序中,我正在使用我编写的几个宏来向日志数据添加一些额外的自定义格式-但是,当我使用使用行为将负责HTTP访问日志记录的宏直接添加到router.ex管道中的插件时,我在使应用程序正确编译方面遇到了一些问题
首先,这里是我尝试使用的宏的简化版本:
defmodule MacroTest do
defmacro __using__(_) do
quote do
require Logger
defmacro execute(data)
我的地图定义如下:
iex(tbc@192-168-1-8)2> map = %{ 1 => {name => "Joey"}, 2 => {name => "Lee"}}
我想交换这两个名称的值,使其看起来像:
%{1 => %{"name" => "Lee"}, 2 => %{"name" => "Joey"}}
我知道我可以使用以下代码来实现这一点:
iex(tbc@192-168-1-8)3> name1 = Map.get
我有一个菲尼克斯应用程序与苦艾酒的Graphql API
Guardian用于验证在标头中提供承载令牌的请求。在提供无效令牌之前,这一切都非常有效。我在Guardian管道中指定了一个错误处理程序,它当前只响应401 http响应:
def auth_error(conn, {type, _reason}, _opts) do
body = to_string(type)
conn
|> put_resp_content_type("text/plain")
Elixir提供了一系列帮助函数,允许您从嵌套结构或另一个实现以下功能的结构中获取和更新值:
但是我找不到任何可以帮助我删除某个值的东西。我知道我可以将该值更新为nil(或者通过获取嵌套映射、删除该值并放入整个映射来避免懒惰),但是我希望能有一个简单的一行程序来删除我可能错过的值。在谷歌搜索了一段时间后,我决定将此作为一个功能请求发布在官方的elixir邮件列表中,结果发现它,和一个替代方案确实存在。它是,返回元组中已删除的值和更新的映射:
pop_in(%%{user:%%{name
我有以下两个功能,并且收到透析器警告:
"Type specification 'Elixir.MyModule':calculate(arg1::'Elixir.String':t(),arg2::'Elixir.CustomType':t(),arg3::'Elixir.String':t()) -> 'ok' | 'error'; calculate(arg1::'Elixir.String':t(),arg2::'Elixir.CustomType':t(),arg3::maybe
通常我的代码使用with宏来确保在继续之前所有必需的数据都可用,但我希望有更细粒度的错误来准确地确定失败的原因
使用文档中的示例:
with {:ok, width} <- Map.fetch(opts, :width),
{:ok, height} <- Map.fetch(opts, :height) do
{:ok, width * height}
else
:error ->
{:error, :wrong_data}
end
但这感觉不是特
如何以phoenix形式传递变更集
以下是控制器的一个片段:
def新建(连接,_参数)do
changeset=Blog.change\u post(%post{})
呈现(conn,“new.html”,变更集:变更集)
结束
但是我得到了这个错误
key:在%{}中找不到用户
这是我的post变更集:
def变更集(post、ATTR)do
邮递
|>演员阵容(attrs,[:title,:content,:是否已发布])
|>需要验证([:标题,:内容])
|>把你的鼻涕虫
|>放置关联
嗨,我想让我的函数更加模块化,并最终将其封装成一个闭包
我目前拥有以下功能:
def get_all_perfume_by_name_con_sex(query, name, concentration, gender) do
from p in query,
join: j in Fumigate.Fragrance.PerfumeCompanyJoin, where: p.id == j.perfume_id,
where: [perfume_name:
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 125 页