如何用空格将列表中的两个字符串连接起来,如:
["StringA", "StringB"]
变成
"StringA StringB"
如果您只想加入任意列表:
"StringA" <> " " <> "StringB"
如果您的列表大小是任意的:
Enum.join(["StringA", "StringB"], " ")
。。。以上所有解决方案都将返回
"StringA StringB"
如果您拥有的是一个任意列表,那么您可以使用Enum.join,但如果它仅
我正在考虑为我的项目工作。答案让我明白了,我可以构建我的版本(在开发模式下)并通过控制台访问它
然而,有两个问题:
当我通过rel/my_app/bin/my_app console打开控制台时,我的应用程序实际上不会启动。我必须调用应用程序。启动(:我的应用程序)才能启动
调用rel/my_app/bin/my_app start不会启动我的应用程序。我可以看到epmd、beam.smp和run_-erl进程已经启动,但我自己的应用程序似乎没有运行
很确定这两个问题是相关的
控制台所采取的步骤
我正在使用Phoenix框架开发一个多语言应用程序
到目前为止,路由器如下所示:
scope "/:locale", App do
pipe_through [:browser, :browser_session]
get "/", PageController, :index
get "/otherpage", OtherpageController, :index
end
scope "/", App do
end
我在文档中使用了插件:
为了使“区域设置
假设我有这个模块
defmodule Loader do
def spawn_pools(0, host, iteations, pids) do
launch!(pids) #something I want to achieve
end
def spawn_pools(pools, host, iterations, pids) do
pid = spawn_link(__MODULE__, :siege, [host, iterations])
sp
调整Elixir及其生态系统中的所有工具以与不同的构建系统协同工作
在这个系统中,包和它们的依赖项是分开管理的,Hex在脱机模式下工作。(抓住柏油球)
它有一个警告:每次我导入一个新包时,我还需要从hexpm导入最新的注册表文件,并且我不能使用未通过hex发布的包,除非它们位于deps链的顶层
给定一堆tarball(并假设它们之间的依赖关系得到满足),如何构建一个与它们一起工作的十六进制注册表文件
到目前为止,我所拥有的:
查看注册表文件格式,发现它是ets文件。可以加载并检查它;现在我需要
我有几张外星人的记录。但是我想复制它们(使它们大100倍)来播放大量的唱片。如何通过EXTO机制实现这一点?您只需从记录中删除id键即可复制dup:
for n <- (0..10), do: User |> Repo.get(record_id) |> Map.delete(:id) |> Repo.insert
用于n Repo.get(record_id)|>Map.delete(:id)|>Repo.insert
虽然如果你有唯一的钥匙那就不行了。。。这将使您
来自其他编程语言,许多像我一样的人都会大吃一惊。我有一个简单的问题。我有一个列表,比如说用户。我希望遍历用户并显示一些信息。非常简单,直到我被这个难倒:
使用eex模板,我尝试这样做:
<%= for i <- 0..length(@users) do %>
<% user = Enum.at(@users) %>
<!-- every third user, I need to display on a new "row" -->
<
如何在Elixir中迭代映射的键值对
这不起作用:
my_map = %{a: 1, b: 2, c: 3}
Enum.each my_map, fn %{k => v} ->
IO.puts "#{k} --> #{v}"
end
结果表明,您在映射上迭代,就像在关键字列表上迭代一样(即,您使用元组):
Enum.each%{a:1,b:2,c:3},fn{k,v}->
IO.puts(“{k}-->{v}”)
结束
还包括:
{k,v}的
标签: Elixir
phoenix-frameworkecto
在我的模型中,我有:
# ....
def total_price(self) do
Enum.reduce(self.child_items, fn(x, acc) ->
x.price + acc
end)
end
它返回一个ChildItem,而不是表示总价的数字。这是为什么?如何修复?Enum.reduce有两个版本:和。带有2个参数的一个参数将集合中的第一个元素作为初始累加器—在您的示例中,第一个ChildItem
您要做的是提供初始成本
我确实有此控制器和模板视图,并且在发布到创建操作时出现此错误:
我是否错过了设置某些特定的插件
**(RuntimeError)预期操作/2返回插头。连接时,所有插头必须接收连接(Conn)并返回连接
长生不老药1.3.2
凤凰城1.2.1
毒药3.0
控制器中的部分代码
def create(conn, %{"cart" => cart, "form" => form}) do
...
if changeset_order.valid? do
Rep
我正在尝试使用Distillery创建我的Phoenix应用程序的发行版,我已经覆盖了DateTime和NaiveDateTime的毒药编码器,以符合API要求
当我运行mix-release时,我的应用程序会编译,但在.boot生成过程中出错
以下是stacktrace:
$> mix release
warning: variable "aliases" does not exist and is being expanded to "aliases()", please use pa
我有一个雨伞应用程序,
在一个应用程序(ex:App1)中,我将函数作为参数发送到另一个应用程序(ex:App2)中的不同函数。
我发送的函数如下所示:
defmodule App1.Bar do
def bar_bar(fun) do
fun.()
end
end
defmodule App2.Foo do
def foo_foo do
App1.Bar.bar_bar(&Io.puts(Project.get.project[:app]))
end
在Elixir中生成UUID的规范方法是什么?我应该使用图书馆还是有内置图书馆?我最好有更少的依赖项,做更多的工作,反之亦然,因此,如果我能在Elixir中生成一个外部依赖项,它会更好地使用它。如果你将Elixir与EXTO一起使用,你可以始终使用EXTO.UUID在Elixir中生成全局唯一引用的标准方法是使用
从:
返回几乎唯一的引用
返回的引用将在大约2^82次调用后重新出现;因此,对于实际目的来说,它是足够独特的
如果你不想在你的项目中包括外星生物,你应该进行评估
为什么需要生产
根据Elixir,如果注册的进程崩溃,它的键将自动从注册表中删除。
当注册表进程本身崩溃并由主管重新启动时,它是使用已注册进程的密钥恢复还是重新启动?注册表进程重新启动。事实证明,使用交互式长生不老药进行测试很容易
# Create a Registry process and registers an Agent process.
{:ok, _} = Registry.start_link(keys: :unique, name: Registry.ViaTest)
name = {:vi
我有一张包括日期的地图清单。我不知道这个列表有多长(可能是几年几天)。我只知道列表是按日期排序的,没有重复的日期
例如:
[
%{date: ~D[2017-01-01], y: ["x"]}, %{date: ~D[2017-01-02], y: ["x"]},
%{date: ~D[2017-01-03], y: ["x"]}, %{date: ~D[2017-01-04], y: ["x"]},
%{date: ~D[2017-01-05], y: ["x"]}, %{date: ~D[2
标签: Elixir
phoenix-frameworkecto
我正在尝试使用edeliver构建我的elixir应用程序的发行版,但我遇到以下错误
==> Failed to build release:
Undefined applications: [xmerl]
我正在尝试将xmerl添加到mix.exs文件中的deps列表中,但我不确定如何执行此操作
任何帮助都将不胜感激。提前谢谢
这是当前在我的项目中的DEP列表
defp deps do
[{:phoenix, "~> 1.2.1"},
{:appsignal,
当我在Elixir中定义一个模块并在IEX中对其执行类似的to_string操作时
MyModule>to_字符串
我会得到结果的
“Elixir.MyModule”
是否有一个根级别的Elixir模块供所有其他模块使用?为什么有一个长生不老药前缀看起来像另一个模块
说它是一个名称空间,但我读过其他文章说Elixir不支持名称空间。我相信这是为了在Elixir和Erlang模块之间做出区别。所有elixir模块都以elixir前缀开头。
MyModule只是atom的别名:“Elixir.MyM
我正在学习长生不老药,我遇到了一个问题。我想处理通过STDIN传入的两个不同的文本文件
例如:
def run() do
# IO.inspect IO.read(:stdio, :line)
case IO.read(:stdio, :line) do
:eof ->
:ok
data ->
IO.write(:stdio, data)
end
end
Interview.run()
我
标签: Elixir
phoenix-frameworktelemetry
我在phoenix应用程序中有以下api客户端
defmodule SomeService do
use HTTPoison.Base
def process_request_url(url) do
Application.get_env(:my_app, :some_service)[:host] <> url
end
def process_response_body(body) do
if String.trim(body) != "" d
我使用Elixir构建了一个异步作业处理应用程序。文档中说,我可以使用终端(使用iex-S mix)或作为独立应用程序(使用mix exq.run)运行应用程序。当我在终端上运行时,一切正常,但当我运行独立应用程序时,我在获取作业时收到以下消息:
16:52:55.028 [info] Elixir.MyWorker[128f902c-dd22-4706-95a2-89dc974b95d6] start
16:52:55.045 [error] Process #PID<0.196.0
我是新来的长生不老药和尝试。以下是我的代码:
def计数(句子)do
a=句子
|>String.downcase()
排序a=Regex.split(~r/([^a-z(\-)]+)/,a)
|>Enum.sort()
uniq_a=Enum.uniq(sort_a)
map=map.new(uniq_a,fn x->{x,0}end)
final_map=Enum.each(map,fn{k,v}->
映射.替换!(映射,k,v+匹配检查(k,排序a))
(完)
最终地图
结束
def匹配检
直到今天我还在使用Phoenix v0.9.0。为了修复错误,我切换到主分支,但现在在运行mix compile时出现此警告:
warning: using do...end in views is deprecated, please use the new YourApp.Web definitions
web/view.ex:6: Youli.View (module)
我想这样做。如何开始?本周末,当0.10发布时,我将起草一些升级指南,这将在这里有所帮助,但现在这将帮助您启动
在Ruby中,如果一个人在类中定义常量,他们将使用所有的caps来定义它们。例如:
class MyClass
MY_FAVORITE_NUMBER = 13
end
你用长生不老药怎么做?如果不存在这样的等价物,您如何解决Elixir中的幻数问题?您可以在变量名前面加上@:
defmodule MyModule do
@my_favorite_number 13
end
以下是Elixir模块可以具有关联元数据的部分。元数据中的每个项都称为属性,并通过其名称进行访问。您可以使用@n
Elixir允许您使用Streams而不是Enums来防止集合的中间副本。但当你走到最后一步时,这有关系吗
即使你知道了最细微的细节,这不是吗
Stream.concat(header, rows)
|> CSV.encode
|> Stream.into(output)
|> Stream.run
和这个一样吗
Stream.concat(header, rows)
|> CSV.encode
|> Enum.into(output)
如果是这样,为什么要提倡
标签: Elixir
phoenix-frameworkecto
通过params中的parent\u id将给定的child的关联从parent\u a更改为parent\u b,会留下一条过时的记录。parent对象
e、 g.(假设参数匹配%{child:%{id:'1',parent_id:'6'})
更新后检索新关联的父记录的正确方法是什么?目前在EXTO中没有内置的方法。您还存在无法使用预加载的问题,因为关联已预加载
一个选择是:
%{child | parent: Repo.get!(Parent, child.parent_id)}
您还可以
我知道在Elixir中,如果您希望干燥测试并在它们之间共享数据,建议设置上下文()
这种方法的问题是,您不能在模式匹配中直接使用上下文[:key](您将得到编译错误无法调用远程函数Access.get/2 in match)。因此,每次要使用上下文变量进行模式匹配时,仍然需要额外的步骤将context[:key]分配给变量(不太枯燥)
在测试之间共享数据的另一个选项是模块属性()。您只需定义一个@key,并在测试中将其用作@key(并且在编译时@key将替换为您指定的)
我想知道使用它们是否是一
标签: Elixir
phoenix-frameworkbrunch
因此,我开始使用Phoenix,但当我尝试将控制器移动到web/static/js/controllers下的单独文件时,它们没有被加载。我猜这和早午餐有关,但我不确定。。。有什么想法吗
谢谢 我以前也有过这个问题。我相信这和早午餐有关是的。你试过运行《凤凰社文摘》吗
如果我没记错的话,如果你将文件移动到priv/static,它应该可以工作(而不是放在Web目录中),但我认为这不是正确的方法。嗯,我找到了一个解决方案,但它不是很优雅。。。。在app.js中,您可以
从“./controller
我想在my/config/config.exs文件中设置我的应用程序的标题:
config :my, My.Endpoint,
url: [host: "localhost"],
root: Path.dirname(__DIR__),
secret_key_base: "secret",
title: "My App"
我以后如何阅读标题,以便在模板中使用它?比如:
<div>
Title of my app is <%= ??? %>
</
首先,我绝对肯定我走错了路,因为我仍然在学习来自Ruby的长生不老药
我从youtube上获得了一个搜索结果列表,并试图提取浏览量最多的视频
# html is the contents of the search results page
metas = html |> Floki.find(".yt-lockup-meta-info > li")
counter = -1
index = -1
high_views = 0
Enum.each(metas, fn(li) -&
有两个def组,当我编写@spec时,会用警告对其进行警告:相同def的子句应分组在一起,def foo/2以前定义过。有什么解决办法吗
虽然警告很有用,但我想让它忽略@spec
@spec foo(:id, integer) :: {:not_found} | {:ok, String.t}
def foo(:id, id) do
# some logic
end
@spec foo(:email, String.t) :: {:not_found} | {:ok, String.t}
我正在编写一些Elixir代码,用于发出HTTP POST请求,其中正文是一个包含选项的JSON文档。其中一个属性以@符号开头
不可能:
json = %{ q: "foobar", @timestamp: 1234567890 } |> Poison.encode!
编写以@开头的映射键文字的正确方法是什么?如果希望将其视为原子,可以执行以下操作:
%{ :q => "foobar", :"@timestamp" => 1234567890 }
这也是有效的:
json
我的一个服务与速率受限的外部API进行通信,因此我希望确保每10秒发送的调用不超过1个
我的天真做法是拥有一个长期运行的API服务,并在每次调用后超时:
def handle_cast({:call_api, data}, state) do
send_to_external_api(data)
:timer.sleep(10000)
{:noreply, state}
end
我不确定是否有合适的方法来执行此操作。编辑:原始解决方案按照建议在10秒之间删除消息。编辑提供了更合适的
标签: Elixir
phoenix-frameworkecto
我创建了一个架构,如下所示:
schema "countries" do
field :code, :string
field :en, :string
field :de, :string
field :it, :string
field :fr, :string
timestamps
end
现在,我想创建一个变更集函数,该函数将接受映射列表。我如何定义它?这是对的(我会说是错的):
def变更集_所有(型号,[])都可以
那么,如
国家
类似于run/3,但允许传递模块名称、函数和
论据。函数应该返回{:ok,value}或{:error,
value},并将接收到第一个参数的更改
(预先指定给在函数调用中传递的对象)
但我不知道怎么用这个。假设我想在exto.Multi中运行这个函数:
def some_fun(value, other_value) do
case value do
nil -> {:error, other_value}
_ -> {:ok, other_value}
如何使用phoenix.html创建3层+关联的嵌套表单?
差不多
待办事项列表中有多个待办事项在一个表单中有多个待办事项注释
与此相同的例子是TodoList,有许多TodoItems
,但我正试图与TodoItems建立更多的关系。TodoItems有很多条评论
TodoList型号:
defmodule MyApp.TodoList do
use MyApp.Web, :model
schema "todo_lists" do
field :title, :string
我有一个EXTO模型,我想用elixir函数生成的自定义二进制id存储在数据库中。这可能吗
我的id函数如下所示:
def gen_id
String.upcase to_string Enum.take_random('abcdefghjkmnpqrstuvwxyz123456789', 8)
end
schema "orders" do
belongs_to :type, Invoicer.Customer
@primary_key {:id, :binary_id
如果生产商返回:
events = [1,2,3]
{:noreply, events, state}
每个列表项是一个事件,还是列表本身就是一个事件
如果是前一种情况:当配置了每个消费者请求的值,并且流程由genserver内部处理时,消费者将自动接收事件数
或者如果是后者:由制作人发送正确数量的事件
我相信这些文件和例子都指向了第一个案例
列表中有一些项目是事件。显式键入以返回列表作为第二个参数;如果它是事件本身,那么任何东西都支持作为返回值
其中有四个非常清楚的例子基本上可以回答所有这样
在理解递归方面,我当然需要做一些补充。我有这个
def query_url(id,page_number) do
returned_response = HTTPoison.get! "https://some_web_page/#{id}/? pageNumber=#{page_number}"
case returned_response.status_code do
200 ->
{:ok,returned_response.body}
_ ->
标签: Elixir
phoenix-frameworkecto
我已经读了很多,我同意这样的观点,即在表之间有一个本地数据库引用是有利的
然而,大多数时候多态的所属的被引用,而不是相反(有很多)。我仍然不知道如何正确处理它
在我的例子中,它是关于Phoenix后端API的,我有一个页面模型,它有许多小部件。每个小部件都有自己的表和模型,因为它需要存储和返回不同的字段。假设我们有一个TwoColumnWidget和一个ThreeColumnWidget,它们都有一个page\u id到page模型的引用
理想情况下,我应该如何建模呢?现在我有一个中间的小部件模
我在Phoenix应用程序中的一个控制器中执行以下操作:
plug :scrub_params, "account"
plug :scrub_params, "studio"
def create(conn, %{"account" => account_params, "studio" => studio_params}) do
end
当有人没有发送正确的参数时,应用程序将返回Phoenix.MissingParamError错
我想在长生不老药中实现一个保护条款
这就是我想做的:
def fib(n) when n < 1, do: n
就我个人而言,我似乎无法理解这里的问题。从您提供的代码来看,似乎您有一个只有一个函数的模块—此处显示的函数。我想你有这样的东西:
defmodule MyModule do
def fib(n) when n < 1, do: n
end
这将失败。这是因为当n
我想在我的控制器中有两个索引函数,一个是带有id的调用,另一个是带有搜索查询字符串的id。由于某些原因,从未调用第二个函数
curl localhost:4000/something/15
curl localhost:4000/something/15?search=bob
def index(conn, %{"id" => id}) do
end
def index(conn, %{"id" => id}, "search" => search }) do
end
因
标签: Elixir
phoenix-frameworkecto
我正在学习Elixir/Phoenix的一个示例项目,从Phoenix 1.2开始。
现在,我用Phoenix 1.3重新创建了该项目,以查看/学习差异并修改我的旧代码
在那里,我有一个模型位置和技能之间的关系。而在position\u controller.ex中的1.2代码中,我使用了
case Repo.insert(变更集)do
{:好的,位置}->
位置=位置|>回购预加载(:技能)
...
为了让技能预加载以进行渲染,我不确定在我的1.3代码中放在哪里
控制器现在似乎放错了位置(R
我有以下函数定义,我试图找到一种方法来简化参数,使它们都是统一的
def update_user(%user{}=user,%%{password:{}=attrs)do
attrs=Map.put(attrs,:密码\重置\令牌,无)
更新用户(用户、属性和用户密码\u变更集/2)
结束
def update_user(%user{}=user,%%{password_reset_token:{}=ATTR),执行以下操作:
更新\u用户(用户、属性和用户密码\u重置\u更改集/2)
def
是否可以创建未排序的地图集
工作原理:
iex(1)> MapSet.new([2,3,2,1])
#MapSet<[1, 2, 3]>
iex(1)>MapSet.new([2,3,2,1])
#地图集
如何预期:
iex(1)> MapSet.new([2,3,2,1])
#MapSet<[2, 3, 1]>
iex(1)>MapSet.new([2,3,2,1])
#地图集
地图集完全没有排序。您可能会看到这些值按小地图排序,但这是Erlang如何
我目前正试图从template.exs生成文件api.ex。
我有一个返回字符串值“name”的函数,但我希望它只作为name
我已经试过了:
String.replace(~s(“name”)、~s(“)、”)
返回带引号的字符串的代码是:
拐点.下划线|>删除引号%>问题在于函数调用和管道的优先级
inspect x |>f与inspect(x |>f)相同,而不是inspect(x)|>f
这应该起作用:
<%= inspect(type) |> Inflex.undersco
我想开发一个非常小的脚本,它读取一个句子,并在控制台中生成一个n-gram图形的输出
这是一个例子
Example
"Show me the code."
Returns
[
"Show",
"Show me",
"Show me the",
"Show me the code",
"me",
"me the",
"me the code",
"the",
"the code",
"code"
]
这是我的代码:
defmodule M do
def
日期以UTC传递到后端,我想将时间转换为给定的TZ。我遇到了一个bug,因为3月10日UTC的DST与我的测试TZ(美国/洛杉矶)不同
我知道这是因为DST,但在给定时间,LA存在于其他日期时间中,这就是我要寻找的,我如何获得该日期时间?如何
{:ok,date,{}=DateTime.from_iso8601(“2019-03-10 02:25:19.464342Z”)
unix=日期时间。到unix(日期)
timezone=Timex.timezone.resolve(“美国/洛杉矶”,u
无法编译依赖项:bcrypt_elixir,“混合编译”失败。您可以使用“mix deps.compile bcrypt_elixir”重新编译此依赖项,使用“mix deps.update bcrypt_elixir”更新它,或使用“mix deps.clean bcrypt_elixir”清除它
(Mix)“nmake”未在路径中找到。如果已设置MAKE环境变量,
请确保它是正确的
请阅读要求。您需要安装Visual Studio才能使用。对于较旧的VS版本,如VS2008,您可以
但是,您
在测试我的Phoenix应用程序时,我经常遇到这样的情况:我将预期记录ID列表与实际记录ID列表进行比较。由于Elixir一直将整数列表打印为字符列表,因此错误的解释非常繁琐,因此我的测试输出如下所示:
Assertion with == failed
code: assert H.sort(Enum.map(list1, &(&1.id()))) == H.sort(Enum.map(list2, &(&1.id())))
lef
上一页 1 2 ...
30 31 32 33 34 35 36 ...
下一页 最后一页 共 125 页