我是凤凰框架和长生不老药的新手,我不知道我做错了什么
如果我使用mix phoenix.new testproject创建一个新项目,它将按预期工作。我在Windows 10上运行cowboy,使用的是mix phoenix。服务器和请求服务速度很快
但是我有一个修改过的项目,当在dev.exsconfig文件中启用code\u reloader选项时,它的运行速度非常慢。请求不能用几分钟。如果我将此选项设置为false,则效果非常好
我已经用狼吞虎咽代替了早午餐来产生所有的私有资产,但据我所知
标签: Elixir
phoenix-frameworkecto
我希望在外太空模型中有一个独特的领域。此字段应包含一个我可以轻松生成的随机字符串(例如,请参阅)。但是,我希望避免生成字符串并检查它是否已经存在于数据库中,因为这会使我暴露于竞争条件
我想让它重试插入,直到找到唯一的字符串。但是我该怎么做呢?它是否应该在变更集/2功能中
defmodule LetsPlan.Event do
使用LetsPlan.Web,:model
模式“事件”做什么
字段:名称,:字符串
字段:from,exto.DateTime
字段:to,exto.DateTime
字
我需要下面命令的输出,即*master\n remotes/origin/HEAD->origin/master\n remotes/origin/master\n“输出以供读取
iex(26)> System.cmd "git", ["-C", "/home/vonhabsi/workpad/Cuis/.git","branch","-a"]
{"* master\n remotes/origin/HEAD -> origin/master\n remotes/origin
标签: Elixir
phoenix-frameworkcron-task
我希望每分钟执行一次代码,并尝试使用以下代码进行尝试:
#your_app/mix.exs
defp deps do
[{:quantum, ">= 1.9.1"},
#rest code
end
#your_app/mix.exs
def application do
[mod: {AppName, []},
applications: [:quantum,
#rest code
]]
end
我希望请求在一段时间后超时,比如说20秒。如果应用程序发送响应的时间超过20秒,Phoenix应该取消执行并立即回复一些错误,最好是HTTP 503
我浏览了Phoenix文档,但没有发现任何关于请求超时选项的提及。看起来Cowboy有一个:timeout选项,我尝试将其设置为10毫秒,但它仍然允许请求花费8951毫秒:
config :app, SomeApp.Endpoint,
http: [port: 4000, timeout: 10]
牛仔文档将此选项定义为:
Cowboy关闭连
我在我的iex终端上写了下面的代码,之后它不再响应了,终端只是停止了,就像它期待着其他东西一样。到底发生了什么
receive do
{:hello, msg} -> msg
{:world, msg} -> "won't match"
end
默认情况下,receive没有超时,因此进程将被阻止,直到当前进程收到与任何模式匹配的消息。如果您只是在玩游戏,可以使用after设置超时,以确保不会发生这种情况:
receive do
{:he
elixir是否有办法从一个函数中获取所有参数和关键字参数,并将它们发送到另一个函数
比如:
def func1("test", 10) do
...
end
def func2("test", "string", "another string", 10) do
...
end
def check(type, *args, **kwargs) do
case type do
:func1 -> func1(*args, **kwargs)
:func2 -
我最近在我的应用程序中添加了搜索书籍功能。现在,我想添加一个排序功能,但我很难做到这一点。我想要达到的目标:
当我不搜索任何书籍标题时,我希望能够根据书籍/索引上的价格或标题对书籍进行排序。但是,如果我使用搜索功能,我希望能够按价格或标题对找到的书籍进行排序。有人可以帮助我或指导我如何做,并结合我目前的代码吗?我附上我当前的搜索代码,以及我为排序功能提供的表单
搜索栏位于layout/app.html.eex中
book/index.html.eex-顶部的排序表单
<%= f = for
我想学一些长生不老药。我相信我会写作
def handleContent(txt) do
{:ok, pid} = StringIO.open(txt)
line = IO.read(pid, 100)
end
这允许我创建几个进程,这些进程可以在知道pid的情况下读取字符串。这是通过pid和IO.read从字符串txt中只读取一行的某种方式吗?(对于\n字符)。您可以提供:all,:line或非负整数作为第三个参数,因此这应该可以实现以下功能:
IO.read(pid,
在“长生不老药”中,我们可以连接这样的列表
ex(52)> [1,2,3,4] ++ [5,6,7]
[1, 2, 3, 4, 5, 6, 7]
我们也可以连接元组吗?像这样的
iex(53)> {1,2,3,4} ++ {5,6,7}
** (ArgumentError) argument error
:erlang.++({1, 2, 3, 4}, {5, 6, 7})
我能想到的另一件事是将元组转换为列表,然后使用to_list和to_tuple函数将其转换回
在模板中,我在行程中有几天的迭代:
<%= for day <- @days do %>
<tr>
<td><%= day.number %></td>
<td><%= day.main_event_time %></td>
<td><%= day.main_event %></td>
<td><%= da
我知道Phoenix提供了一些很好的Railsy助手,可用于以下形式:
文本输入
数字输入
日期选择
并提交
但我找不到用于选定字段的。我一直在搜索,但什么也没找到
所以我的问题是,表单中是否有用于选择字段的Phoenix帮助程序?就在那里,文档在Phoenix.HTML项目中:感谢您指出这一点,我应该一直在搜索文档
select的辅助对象是:
示例:
假设表单包含一个用户模型
选择表单,:年龄,0..120
=>
0
...
120
选择表单,:角色,[管理员:管理员,用户:用户]
=>
我正在编写一个模块来查询在线天气API。我决定将其实现为一个带有受监督的GenServer的应用程序
代码如下:
defmodule Weather do
use GenServer
def start_link() do
GenServer.start_link(__MODULE__, :ok, name: __MODULE__)
end
def weather_in(city, country) do
GenServer.call(__MODULE__,
我需要计算elixir中字符串的CRC 16。是否有用于此目的的现有库?我还需要elixir中的CRC库,我刚刚为此发布了一个包:
有一些Erlang实现:实际上我需要一个CRC-16库(普通,而不是CCITT),在这个链接上,一个十六进制字符串“test”(不带引号)给出0xC481作为CRC-16的答案,这是正确的。你能为普通的CRC-16推荐任何图书馆吗?我已经试过你的了,但CCITT不是我所需要的,不是的,不是马上的。如果你能找到一个做“普通”的C库,我可以为它添加一个函数。在寻找库作
标签: Elixir
phoenix-frameworkecto
我有一个控制器,其创建函数如下所示:
def create(conn, %{"data" => refinement_params}) do
case Repo.insert %Refinement{ refinement_code: refinement_params["refinement_code"], team_name: refinement_params["team_name"], organization_id: conn.assigns[:organization
除了重新启动工人外,是否还有其他方法可以在工人退出后在主管中执行操作
目前,我在下面的worker中有一些代码,似乎有一半的时间在运行
try do
some_work()
catch :exit, reason
save_reason_to_db()
exit(reason)
工人有一个一对一策略,只有一个工人在运行。因此,每次工人退出时,主管都会启动一个新的
似乎每一秒这个工作者退出时,都会运行save_reason_to_db,我不是OTP专家,但最简单的解决办法可
过去有人问过这个问题,我甚至回答了。
但是,随着升级到1.1.2,这种方法不再有效。因为名称中的任何空白(如“超级清理器”)现在表示为“超级+清理器”,这是传递到查询中的值,因此不会收到任何点击。正确的方法是什么?我想这和菲尼克斯有关。帕拉姆在另一篇帖子中回答道?问题归结为它被视为整数而不是字符串,我不知道为什么
情况如何:
应该如何:
编辑:更新以包含我的代码
HTML
<a class="secondary button" href="<%= weapon_path(@conn,
我有以下代码片段:
defmodule Play do
defmacro mobile(expr) do
IO.puts "I will compile"
quote do
IO.puts "#{inspect unquote(expr)}"
unquote(expr)
end
end
end
defmodule Run do
import Play
def run do
IO.puts "Execute ma
我编写了一个full\u name(user)helper函数,并希望在模板中使用它
我尝试在模板中使用,但得到一个未定义函数全名错误。如何在模板中使用此函数
web/views/user\u helpers.ex
defmodule MyApp.UserHelpers做什么
别名MyApp.User
def全名(%User{first\u name:first\u name,
姓氏:姓氏,
敬语前缀:敬语前缀,
敬语后缀:敬语后缀})do
[尊称前缀、名、姓、尊称后缀]
|>枚举拒绝(&(&1
标签: Elixir
phoenix-frameworkecto
我可以在ecto 2.0中插入多条记录:
iex(1)> categories = [%{name: "stackoverflow", url: "stackoverflow.com"}]
iex(2)> App.Repo.insert_all App.Category, categories
是否可以一次更新多个记录
iex(1) > category = App.Repo.all(App.Category) |> hd
iex(2) > changeset
在elixir中,如果我对列表进行操作,得到3的倍数:
1..10 |> Enum.filter(fn(x) -> (rem(x,3) == 0) end)
输出:[3,6,9]
其中,好像我添加了一个or语句:
1..10 |> Enum.filter(fn(x) -> (rem(x,3) == 0 || rem(x,5)) end)
输出:[1,2,3,4,5,6,7,8,9,10]
为什么or语句(已括在括号内)会给出意外输出?rem/2将返回一个整数作为其
我将模块传递给函数,并希望使用保护子句(函数的设计目的是:atom或module)传递给它
我如何检查函数中的参数是module(比如是原子的_atom)仅使用保护子句是不可能的。我将在函数体中使用它。如果模块存在或不存在,除了返回true/false外,如果可以在代码路径中找到相应的beam文件,还将尝试加载模块:
iex(1)> defmodule A do
...(1)> end
iex(2)> Code.ensure_loaded?(A)
true
iex(3)>
我目前正在使用下面的代码将秒格式化为mm:ss格式。有更好的选择吗
def formatted_length(length) do
minutes =
length/60
|> Float.floor()
|> round()
|> Integer.to_string()
seconds =
rem(length, 60)
|> Integer.to_string()
我想在Elixir中定义一个协议,然后让几个模块实现它。我的问题是这些模块只是代理包装,所以:
defprotocol Proto do
def foo(proto)
end
defmodule A do
def start_link() do
Agent.start_link(fn -> :a end)
end
end
defimpl Proto, for: A do
def foo(proto) do
Agent.get(proto, fn a -&
我想在映射中对键的值进行模式匹配
def handle_in("new_message", payload, socket) do
case payload.message do
"hello" -> broadcast! socket, "new_message", payload
end
{:noreply, socket}
end
[错误]GenServer#PID正在终止
**(KeyError)键:在以下位置找不到消息:%%{“m
我试图使用基于keyeword的查询来使用横向连接
我基本上是从文件中复制粘贴的
AutoMessage
|> join(:inner, [am], a in assoc(am, :app))
但它会抱怨
undefined function a/0
你知道我做错了什么吗
附言:在外太空运行。2.0.5最有可能的是exto.Query.join/3宏未导入范围,编译器会将查询解释为常规的长生不老药代码
注:关键字样式查询是使用from/2宏的查询,使用其他宏是管道样式或直接样式(不确定
标签: Elixir
phoenix-frameworkelixir-iex
在iex-S mix中当我使用别名MyApp.Services.DoStuff时
我看到一个响应MyApp.MyApp.Services.DoStuff
这似乎不允许我在控制台中使用我的模块
我的模块在lib/myapp/services/dostuff.ex
defmodule MyApp.Services.DoStuff do…根据Dogbert的评论,我意识到我在.iex.exs文件中意外地使用了MyApp.MyApp别名。一定是由于大量的复制粘贴…您是否能够调用MyApp.Service
我正在尝试创建简单的Phoenix应用程序。当我运行mix phoenix.new my_app时,我发现一个错误:
* running mix deps.get
* running npm install && node node_modules/brunch/bin/brunch build
* error command failed to execute, please run the following command again after installation:
标签: Elixir
phoenix-frameworkecto
我有一个查询,它拉入了要在json api中使用的关系。如果排除select语句,效果很好,但是,当包含select语句时,关系不会显示。我需要select语句来包含属性的子查询。如何在select中指定关系,以便显示它们
journal_entries = from entry in JournalEntry,
select: %{
entry: entry,
id: entry.id,
account_id: entry.account_id,
archi
从模板(.eex)在服务器端创建HTML内容的可能解决方案是什么?这是可能的,而且非常简单,Phoenix。View模块提供了许多功能,可以做到这一点。这是可能的,而且非常简单,Phoenix.View模块提供了许多功能,可以实现这一点。什么?你想做什么?我有一个模板(.html.eex)可以将html呈现到页面中,我必须将该页面转换为pdf。我知道转换pdf的库,但我想要的是服务器端的确切html内容,以便我可以转换它。谢谢@JustMichaelI相信这是可能的,而且应该很简单,您可能可以使
标签: Elixir
phoenix-frameworkecto
我将在这里展示一些相关代码,但如果您需要完整的代码,可以在Github上找到:
用户模型:
defmodule PhoenixTodo.User do
use PhoenixTodo.Web, :model
@derive {Poison.Encoder, only: [:name, :email, :bio, :todos]}
schema "users" do
field :name, :string
field :age, :integer
fiel
标签: Elixir
phoenix-frameworkenumeration
我有两个带有地图的列表:
apps = [%{name: "app1", version: "0.0.1"}, %{name: "app2", version: "0.0.1"}]
updates_list = [%{name: "app1", version: "0.0.2"},
%{name: "app2", version: "0.0.1"},
%{name: "app3", version: "0.0.1"},
我对长生不老药和凤凰很陌生,但我发现它真的很酷。我来自Rails的背景
例如,给定此变更集:
def signup(struct, params \\ %{}) do
struct
|> cast(params, [:email, :password, :password_confirmation, :username])
|> validate_required([:email, :password, :password_confirmation, :use
我有一个EXTO模式,它使用arc上传器作为字段类型
schema "files" do
field :name, :string
field :locked, :boolean, default: false
field :mime_type, :string
field :path, Splish.Assets.FilesUploader.Type
field :size, :integer
belongs_to :user, Splish
标签: Elixir
phoenix-frameworkcircleci
我有一个用于Elixir伞形项目的简单CircleCI配置文件。运行时,它在最后一步混合测试时卡住,最终超时。我尝试过不同的方法,但都不奏效
我在配置文件中遗漏了什么或做错了什么
version: 2
jobs:
build:
services:
- rabbitmq-server
- redis
docker:
- image: circleci/elixir:1.5.2
working_directory: ~/my-p
我想从天数列表中找到“桥牌日”。名单如下:
days = [
%{value: ~D[2017-04-01], categories: ["weekend"]},
%{value: ~D[2017-04-02], categories: ["weekend"]},
%{value: ~D[2017-04-03], categories: []},
%{value: ~D[2017-04-04], categories: []},
...
%{value: ~D[2017-04-13]
我正在为nginx proxy后面的应用程序提供服务,希望保留phoenix live重新加载功能。问题在于:
<iframe src="/phoenix/live_reload/frame" style="display: none;"></iframe>
但是它似乎没有改变iframe的url。然后,我在我的dep中找到了livereloader.ex,我想它允许用config设置url
有人能告诉我如何设置它的url吗?提前谢谢
更新了config/dev.exs
标签: Elixir
phoenix-frameworkecto
我的博客应用程序有一个功能,允许人们复制其他人的帖子,并将其作为自己的帖子寄存
Posts与所有者关联
schema "posts" do
field :title, :string
field :content, :string
belongs_to :owner, MyApp.Accounts.User, foreign_key: :owner_id
end
我想按id获取一份Post,删除id和owner\u id字段,转换新的owner id,
我是Elixir的新手,目前正在与Ruby进行交易。我正在努力绕过我遇到的错误,因为Elixir没有对象.class,我正在努力理解我返回的数据类型以及如何对其进行故障排除
无论如何,我正试图从CSV种子数据库,但得到的错误
下面是我的代码
File.stream!('users_departs.csv')
|> Stream.drop(1)
|> CSV.decode(headers: [:name, :title, :departments])
|> Enum.take(1
我有一个字符串化的值,可以是整数或布尔值(“20”,“true”)。我想将值强制转换为它的类型,但是,当我在错误的类型上进行转换时,会出现运行时错误:
iex>String.to_现有_原子(“20”)
**(ArgumentError)参数错误
:erlang.binary_to_existing_atom(“20”,:utf8)
iex>String.to_整数(“真”)
**(ArgumentError)参数错误
:erlang.binary\u to\u integer(“true”)
我了解api日期。to_字符串根据其日历将给定日期转换为字符串,因此我得到美国托管服务器的格式“8/22/18”,以及英国本地服务器的格式“2018-07-30”
是否有办法从日历中检索格式?如果您同意始终以ISO 8601格式打印,则可以使用。如果没有,我建议您使用该库(具体请参见):
通过深入研究源代码,我发现Date.to_字符串(~D[2018-07-30])将始终返回字符串“2018-07-30”,无论您从哪个国家运行它
如果您查看Date.to_string的来源(通过以下方式:
(
使用@behavior GenStage.dispatcher创建的自定义dispatcher能否访问其父模块,该父模块以{:producer,state,dispatcher:CustomDispatcher}的身份调用他
我意识到调度程序是在与生产者相同的过程中启动的
例如,如果我尝试从调度员向制作人发起一个handle\u呼叫,那么我将收到:
GenStage.call(producer, :test)
** (exit) exited in: Gen
从文件中:
:运行时-依赖项是否是运行时应用程序的一部分。
如果中的def application中未提供:applications键
在您的mix.exs文件中,mix将自动包含所有依赖项
运行时应用程序,除非给出了runtime:false。默认值
这是真的
根据文件:
:应用程序-应用程序所依赖的所有应用程序
运行时。默认情况下,此列表将根据您的
依赖关系。Mix和其他工具使用应用程序列表
在启动应用程序本身之前启动依赖项
这是否意味着将runtime:false添加到依赖项将使其不会作为
我正在从以下位置查看示例应用程序:
我遇到了以下代码,我根据自己的理解对其进行了标记
def query(Score, params) do #defined function query/2
params
|> Map.put_new(:limit, 10) #adding to the "dictionary"
|> Map.put_new(:order, :total) #""
|> Map.to_list() #flattening ou
嗨,我写了一系列大约50个迁移
当我尝试运行eco.migrate时,它只会首先运行,我会遇到这个奇怪的错误
** (FunctionClauseError) no function clause matching in IO.chardata_to_string/1
The following arguments were given to IO.chardata_to_string/1:
# 1
nil
Attempted function clauses (s
实现。。。
20:42:11.328[调试]AccountStreamDispatcher=>正在启动。。。
20:42:11.328[信息]AccountStreamDispatcher=>正在初始化。。。
20:42:11.328[调试]StreamSubscriber=>正在启动#(长生不老药)
20:42:11.329[调试]StreamSubscriber=>正在初始化。。。(长生不老药)
{:好的,#PID}
iex(2)>
感谢您的回复!对于参数部分,对于映射,我知道这是不正确的(
标签: Elixir
phoenix-frameworkagent
我有一个HTTP端点,它创建一个映射并使用代理存储它
我想在到达另一个端点时访问此地图。但当我试图从代理获取数据时,它返回的是空的
有人能确认这是否是使用代理的有效方案吗?如果是,我遗漏了什么
代码:
defmodule BoardState do
use Agent
def start_link do
Agent.start_link(fn -> %{} end, name: __MODULE__)
end
def add(game_id, board) do
我不熟悉Elixir,我需要更改另一个贴图中的贴图值
例如:
test = %{"test1" => %{"test11" => 0}, "test2" => %{"test22" => 0}}
我试过:
test = Map.put(test["test1"], "test11", 1)
返回:
%{"test11" =>
我在三个不同的视图(user\u view.ex、group\u view.ex和connection\u view.ex)中具有相同的功能full\u name)。我如何重构它,使其干燥?我希望全名函数只在项目中的一个位置
defmodule MyApp.GroupView do
使用MyApp.Web,:查看
别名MyApp.User
def全名(%User{first\u name:first\u name,
姓氏:姓氏,
敬语前缀:敬语前缀,
敬语后缀:敬语后缀})do
[尊称前缀、名、
标签: Elixir
phoenixphoenix-channels
我将websocket传输与Phoenix频道一起使用,但我试图为没有Phoenix.Socket客户端的消费者提供一个干净的API,以便只与websocket一起使用
为了简单起见,我想在用户打开会话时自动订阅各种频道
目前我有一些类似于:
defmodule MyWeb.UserSocket do
require Logger
use Phoenix.Socket
alias Exchange.{Account, ApiKey}
channel "room:tim
上一页 1 2 ...
44 45 46 47 48 49 50 ...
下一页 最后一页 共 125 页