文件中根本没有提到这一点。是否允许嵌套范围定义,如果允许,在web/router.ex中定义的以下行为是什么:
scope "/:locale", MyApp do
pipe_through [:browser, :locale]
scope "/auth", MyApp do
pipe_through [:auth]
get "/", PageController, :dummy
end
get "/", PageController, :dummy
en
这是我的用户模型
@required_fields ~w(name email hashed_password)
@optional_fields ~w()
def changeset(model, params \\ nil) do
model
|> cast(params, @required_fields, @optional_fields)
|> validate_length(:password, min: 6)
|> h
标签: Elixir
phoenix-frameworkecto
我正在尝试做两个领域的唯一约束在外体研究生。到目前为止,我设法做到了:
在移徙方面:
create unique_index(:presences, [:event_id, :user_id], name: :special_event_user)
变更集:
def changeset(presence, params \\ :empty) do
presence
|> cast(params, @required_fields, @optional_fields)
根据我在网上找到的文章,我可以想象以下方法会奏效:
iex(9)> q
%{one: 1, two: 2}
iex(10)> nq = %{ q | three: 4}
** (KeyError) key :three not found in: %{one: 1, two: 2}
(stdlib) :maps.update(:three, 4, %{one: 1, two: 2})
(stdlib) erl_eval.erl:255: anonymous fn
当进程等待接收消息时,它处于空闲状态,不会浪费CPU时间。这是什么意思
我有一个递归的循环函数:
def start do
spawn(&loop/0)
end
defp loop do
receive do
{:run_query, caller, query_def} ->
send(caller, {:query_result, run_query(query_def)})
end
loop
end
代码交换:
模块重新定义:
iex(node2@127.0.0.1)6> Code.load_file("mesngr.ex", "./lib")
[{Mesngr,
<<70, 79, 82, 49, 0, 0, 12, 72, 66, 69, 65, 77, 69, 120, 68, 99, 0, 0, 0, 255, 131, 104, 2, 100, 0, 14, 101, 108, 105, 120, 105, 114, 95, 100, 111, 99, 115
可以使用以下命令在Phoenix中为数据库设定种子:
mix run priv/repo/seeds.exs
我想通过JSON API为应用程序设定种子,因此在seeds.exs中会有大量对服务器的HTTP请求,而不是DB调用,如:
...
# Creating post.
HTTPoison.post! "http://localhost:4000/posts", Poison.encode!({name: "My post"}),
[{"Content-Type", "applica
使用Elixir的交互式shell IEx时,我可以通过以下命令创建节点:
iex --sname node_name
但是如何通过代码创建节点,然后通过以下方式运行代码:
elixir code.exs
有些函数类似于node(),但这些函数似乎只是返回一个已存在的节点。使用
elixir --sname node_name
通常,您传递节点名称,以便所有内容都知道自己的名称。但是,显然也可以在使用Erlang net_内核模块运行时设置名称,如的答案中所述,如果您正在执行Erlang发
我想知道当你有不同的IP指向同一台服务器时,如何让Phoenix服务于在同一台服务器上运行的不同应用程序
例如,您的AppA和appB Phoenix应用程序运行在同一台服务器和同一个端口(80)上,如果请求来自IP X.X.X.X,您将为AppA提供服务。如果请求来自IP Y.Y.Y.Y,您将为appB提供服务。
我尝试了一个简单的体验,我不能让两个应用程序在同一个端口上运行(如果我没有配置任何其他东西)。
我找到了我认为可以用于此目的的Plug.Adapters.Cowboy。根据文档,有一
我正在努力测试需要令牌头的api端点。我们的想法是测试两种情况,使用和不使用身份验证令牌
我想出了以下可行的解决方案,但我觉得有点笨拙
defmodule MyApi.SecretControllerTest do
use MyApi.ConnCase
alias MyApi.{Repo, User, Session}
setup %{conn: conn} do
user = create_user(%{name: "john"})
se
如何检查文件是图像文件还是ascii文本文件?
例如,检查“file1”是否为ascii文本或二进制图像/png文件。我不熟悉Elixir,但明显的语言无关解决方案是使用命令行工具(在类似Unix的系统上是标准的,包括Linux和MacOS,可以作为第三方应用程序安装在Windows上)或者它所基于的libmagic库。这些方法应该适用于任何可以调用外部程序和/或使用C风格ABI(可能通过某种包装器模块)调用动态链接库的语言
文件和libmagic的工作方式是读取不同文件格式的预编译文件,并根据
我正在尝试使用频道(Websockets)将Angular 2前端连接到Phoenix应用程序。它们是完全独立的,在本地主机上的不同端口上运行(phoenix在4000上,angular 2在5555上)。奇怪的是,我在后端发现一个(Phoenix.Router.norouterror)找不到GET/websocket(MyApp.Router)的路由错误。前端出现代码1006错误:
WebSocket连接到“ws://localhost:4000/WebSocket?vsn=1.0.0”失败:
标签: Elixir
phoenix-frameworkphoenix-channels
我对长生不老药和凤凰的框架还很陌生,所以我的问题可能有点傻
我有一个应用程序,Elixir+Phoenix框架作为后端,Angular 2作为前端。我使用凤凰频道作为前端/后端交换频道。我发现了一个奇怪的情况:如果我从后端向前端发送一大块数据,那么特定的通道进程内存消耗将高达数百MB。即使在传输结束后,每个连接(每个通道进程)也会消耗如此多的内存
以下是来自后端通道说明的代码片段:
defmodule MyApp.playlistuserchannel do
使用MyApp.Web,:频道
导
标签: Elixir
phoenix-frameworkrethinkdbecto
我正在尝试创建一个新的Phoenix应用程序,使用RejectionDB作为数据库,RejectionDB_-eCot作为适配器
我已经创建了该应用程序,并按照GitHub上的说明操作:
我的mix.exs:
def application do
[mod: {RethinkPhoenix, []},
applications: [:phoenix, :phoenix_pubsub, :phoenix_html, :cowboy, :logger, :gettext,
我对Elixir非常陌生,正在尝试使用页面上的说明设置ejabberd(我使用的是Erlang/OTP19和Elixir 1.3.2)
在执行mix compile时,我得到一个很长的屏幕输出,该输出在编译错误中终止:
我不知道出了什么问题以及如何解决。看起来像是一种叫lager的东西出了问题,但我不知道如何解决。请帮忙 事实证明,埃贾伯德还没有为二郎19做好准备。它的一些依赖性似乎仍然存在于OTP18世界中。所以我将Erlang降级为18,Elixir降级为1.2.6,现在它编译得很好
标签: Elixir
ejabberdphoenix-framework
我在Phoenix应用程序上有一个ejabberd的本地设置。为了测试它,我创建了一个帐户并使用Pidgin登录。但我注意到日志中有一些奇怪的东西:
iex(8)> [info] (#Port<0.25178>) Accepted connection 127.0.0.1:34684 -> 127.0.0.1:5222
[info] ({socket_state,gen_tcp,#Port<0.25178>,<0.899.0>}) Accepted
如何在elixir中实现延迟模式
让我解释一下是什么。假设我有一些fn(),应该在现在之后以n秒延迟来实现。但是如果我第二次调用这个fn()函数,这个函数应该在第二次调用后的n秒内实现,以此类推。也应该有一种方法退出此函数评估
您可以查看Lodash的函数以供参考。好的,下面是一个简单的例子:
这里的n不是以秒为单位的而是循环步骤,因此您需要大的n来查看延迟。这里我使用IO.put作为调用函数的示例
defmodule myModule do
def loop(list,count) do
我想使用:transient restart策略来监督任务,这样只有当任务异常退出时才会重新启动。然而,当我测试我的应用程序时,我发现它重新启动了4次,然后主管自行退出。我简化了代码,甚至将重新启动更改为:临时,但即使如此,主管仍在重新启动任务
简化示例:
defmodule FooSup do
use Supervisor
def start_link() do
IO.puts "starting #{__MODULE__}"
Supervisor.start_lin
以下是相关的控制器操作:
def create(conn, %{"post" => post_params}) do
changeset = Post.changeset(%Post{}, post_params)
case Repo.insert(changeset) do
{:ok, _post} ->
conn
|> redirect(to: page_path(conn, :thanks))
如何在EXTO中编写迁移以删除列的默认值?假设我有一个名为:users的表,其中有一个名为:timezone的列,该列以前默认为“Etc/UTC”
这是我迁移的开始
def up do
alter table(:users) do
modify :timezone, :string, default: fragment("NULL"), null: true
end
end
def down do
alter table(:users) do
我在Elixir中编写了一个函数,创建了一个映射,然后尝试更改其中一个键的值,但它似乎不想更新
defmodule KV do
def test() do
map = %{foo: "bar", hello: "world"}
IO.inspect map.foo
%{map | foo: "baz"}
IO.inspect map.foo
end
end
KV.test()
编译代码后,我希望看到的是:
"ba
官方《长生不老药指南》中有一个类似代理的实现
defmodule AAgent do
def start_agent do
spawn_link fn -> loop(%{}) end
end
def loop(state \\ %{}) do
receive do
{:put, key, value, caller} ->
new_state = Map.put(state, key, value)
send
标签: Elixir
phoenix-frameworkecto
我试图在表worklogs中插入一个EXTO模型,该模型有两个关系user\u id和issue\u id。我发现,当我尝试使用这两个字段的有效整数为worklog创建变更集时,它们不包括在变更集中,并且在生成的worklog和API响应中为空。我已确保用户和问题与我使用worklog插入的主键存在
我还查看了文档,似乎build\u assoc/3是更新关系的方法,但似乎仅限于为单个关系插入。从文件来看,我认为我应该这样做:
user = #get the user
worklog = Ect
函数保护子句中是否有使用或或和表达式的方法:
defmodule Test do
def testfn(arg1, arg2) when is_nil(arg1) || is_nil(arg2), do: :nothing
def testfn2(arg1, arg2) when is_nil(arg1) && is_nil(arg2), do: :nothing
end
Guard表达式不支持&&和|(在LHS上接受任何值),而只支持和和或(在LHS上只接受布尔
我需要让GenServer监视任务,因此,我需要:
GenServer.call(server_pid, {:monitor_task, self()})
在服务器中:
def handle_call({:monitor_task, task_pid}, _from, state) do
ref = Process.monitor(task_pid)
{:reply, ref, state}
end
但是,我得到一个错误:
** (stop) exited in: GenServer
我正在制作能够发送/接收异步消息的基本Elixir服务器/客户机模块。该模块如下所示
defmodule Bitcoin.WorkerOne do
use GenServer
def start_link(opts) do
IO.puts " - Worker 1 started - "
GenServer.start_link(__MODULE__,:ok, opts)
end
def set_message(server, name, mid) do
GenSer
在长生不老药中None和nil有什么区别
从Elixir的文档中,如果我理解正确的话,nil是一个表示无值的文字
但是,即使是None似乎也代表了相同的内容,尽管我找不到任何相关文档。正如@JustMichael所提到的,None的行为与您想象的完全不同。
elixir中的None只是一个原子,没有任何进一步的意义,正如您可以通过iex中的i(变量)确定的那样
iex(1)> i(None)
Term
None
Data type
Atom
Raw representation
我正在寻找一个非常简单的基本工作岗位回复示例。应用程序只需要有两个路由/控制器。第一个是包含HTML表单的主页,另一个是用于嵌入表单post响应的主页
令人惊讶的是,所有在线类似代码的示例都是完全膨胀的(IMHO),代码我不理解
目前,我得到的错误是请求CSRF令牌(是的,我知道这是什么)。在我在线查看的一些代码中,表单有一行类似于以下内容的代码来生成表单:
<input type="hidden" name="csrf_token" value="<%= csrf_token(@c
如何将相对文件位置记录到其项目根目录
“我的项目”是Phoenix框架项目的根目录。
在users/me/apps/my project/my file.txt内部,如果我这样做:
IO.put\uuuuu环境文件
控制台输出绝对路径:users/me/apps/my project/my file.txt
如何输出相对路径,例如my project/my file.txt 您可以获取根目录,然后使用它对\uuuu ENV\uuu.file进行前导修剪:
defmodule A do
def
将manjaro的核心从版本4.16更新到4.17后,elixir 1.5记录器停止工作
elixir -v
=SUPERVISOR REPORT==== 12-Jul-2018::16:29:19.697604 ===
supervisor: {local,'Elixir.Logger.Supervisor'}
errorContext: start_error
reason: noproc
offender: [{pid,undefined},
标签: Elixir
phoenix-frameworkecto
我试图查看当前用户的团队是否与传入用户的团队重叠。我有一些有用的东西,但我很好奇它是否能让我更有效率。以下是我所拥有的:
user_teams = from(
t in MyApp.Team,
left_join: a in assoc(t, :accounts),
where: p.owner_id == ^user.id or (a.user_id == ^user.id and t.id == a.project_id)
) |> Repo.all
current_us
标签: Elixir
phoenix-frameworkecto
我有一个名为Company的外部模型,它有一个name字段。我想要的是在数据库中插入或更新公司之前,将String.capitalize应用于name属性。以下是公司控制器的创建和更新功能:
def create(conn, %{"company" => company_params}) do
case Company.insert(conn.assigns.current_user, company_params) do
{:ok, _company} ->
[已解决]
大家好
我刚刚开始学习Phoenix framework for Elixir,当我访问Phoenix(localhost:4000)时,页面加载时没有CSS
其中一部分,一切都按预期运行
有人知道如何解决这个问题吗
我的操作系统:
分发服务器ID:Ubuntu
说明:Ubuntu 16.04.5 LTS
发行日期:16.04
代号:xenial
我的长生不老药版本:
Erlang/OTP 21[erts-10.1][source][64位][smp:8:8][ds:8:8:10][
我一直在犯这个错误。该错误是预期的,但我如何处理该案例,使其不会在控制台中抛出红色文本
代码:
错误:
14:23:18.273 [error] #PID<0.354.0> running Api.Router terminated
Server: 172.20.10.6:4000 (http)
Request: PUT /product/isvegan/?p_id=1&u_id=792200324272726
** (exit) an exception was raise
在我的应用程序的注册页面上,我尝试将嵌套表单(使用and)与exto.multi和变更集结合使用
目标:如果一个或多个服务器端验证失败,则使用以前输入的信息重新呈现表单,以便用户可以进行更正,而不是从头开始
该应用程序有一个组织架构,其中有一个用户是创建者/所有者:
schema "organizations" do
field :owner_id, :integer
has_one :owner, MyApp.Accounts.User, references: :owner_id,
我正在尝试编写一个简单的elixir实用程序脚本,它将一些文本作为STDIN(即PostgreSQL转储)的输入,过滤该文本并将其输出到STDOUT,以供后续命令使用:
pg_restore db backup/big_dump.psql.gz | db_trimmer.exs | psql…
我的第一个脚本版本是删除转储中复制数据的所有行(以copy开始,以\.结束):
我的目标是控制脚本使用的内存,因为转储可能非常大。因此,我开始使用Elixir流模块和函数。最后,我使用IO.stream和
我有这个:
defmodule MyTest1 do
def print_data do
IO.puts("***this module: #{__MODULE__}")
end
end
如果我从其他模块中调用它,它仍然会打印定义它的原始模块的名称-->Elixir.MyTest1
如何更改它,以便打印调用它的模块的名称?如果不必将\uuu模块作为参数传递给函数print\u data,显然不可能实现所需的行为。是一种编译语言,生命周期只是一个编译阶段。上面的代码在任何对它的调
我有一个下面的curl请求可以工作,但是当我把它翻译成下面的内容时,我得到了以下错误:这个标题有什么问题?我觉得我已经尽了一切可能
url = "https://content.dropboxapi.com/2/files/download"
header = [ {"Authorization", "Bearer #{token}"}, {"Dropbox-API-Arg", "{\"path\": \"/dropboxtest/image.jpg\"}"} ]
HTTPoison.post(
我有一个元组列表,如下所示:
def pairs do
person_a = %{name: :a}
person_b = %{name: :b}
[{person_a, 1}, {person_b, 5}, {person_a, 2}, {person_b, 6}, {person_a, 3}]
end
defmodule EnumHelpers do
defp group_one({key, val}, categories) do
Map.up
标签: Elixir
phoenix-frameworkecto
我必须处理一个无法更改的数据库设置,并且必须使用一个特定的SQL查询来计算表中没有字段的值。我怎样才能在外太空工作?以下是我的方法和遇到的问题:
设置
之后,我创建了两个产品
x
我将虚拟x字段添加到产品:
lib/testapp/shops/product.ex
defmodule Testapp.Shops.Product do
使用exto.Schema
导入外部变更集
模式产品是什么
字段:名称,:字符串
字段:价格,:浮动
字段:x,:整型,虚拟:真castattrs,[:名称,:价格
似乎没有简单的方法来获取非字符串数据的字节大小?如果我想知道list、boolean、integer、float等的字节大小,我应该使用什么库;DR没有“术语的字节大小”这样的东西
多亏了不变性,因此在堆中为某些对象共享内存。请参见下面的示例
根据你所寻找的,这个答案可能会有所不同
:erlang.term_to_binary/1+:erlang.byte_size/1
:erlang.term_to_binary/1返回一个二进制数据对象,该对象是根据erlang外部术语格式对term进行
标签: Elixir
phoenix-frameworkphoenix
对于一个学校项目,我生成了一个带有--no webpack选项的phoenix项目。
现在我们需要用javascript和webpack扩展我们的项目。
问题是我没有资产文件夹,我想知道是否还有方法生成它或其他可能的修复。
我已经尝试生成另一个项目并在它们之间复制粘贴我的文件,但这在不同的文件中给了我错误。生成另一个项目是一种方法,但您可以让git为您进行合并
在其他目录中生成具有相同名称的项目,然后与允许不相关的历史记录选项合并:
git merge../other文件夹/相同的项目名称--允
我有两种型号Player和Event。一个运动员有许多项目。我有一个EXTO查询,获得了如下的最佳得分:
from(p in Player,
join: s in assoc(p, :events),
group_by: [p.id],
select: %{total_goals: count(s.id), player: p},
where: s.type == "goal_scored",
where: p.team_id == ^team_id,
order_by:
标签: Elixir
phoenix-frameworkecto
我有一个EXTO查询,我正试图构建它,将一个额外的连接和预加载管道连接到一个已经包含预加载的组合查询上
defp list_assets_qry(asset_id) do
from a in Asset,
join: u in assoc(a, :user),
where: a.asset_id == ^asset_id,
preload: [user: u]
end
list_assets_qry(asset_id)
|> j
给出以下地图列表:
ball\u prop\u list=
[
%{“id”=>“cue”,“is_idle”=>true,“velocity_x”=>0.0,“velocity_z”=>0.0,“x”=>-15.0,“z”=>0.0},
%{“id”=>“ball_1”,“is_idle”=>true,“velocity_x”=>0.0,“velocity_z”=>0.0,“x”=>15.0,“z”=>0.0},
%{“id”=>“ball_2”,“is_idle”=>true,“veloci
在Python的setup.py中,我们可以指定应该下载并作为鸡蛋安装的依赖项,方法是指定测试需求。在Elixir的mix中,如何指定只用于测试的依赖项 Mix中的依赖项放在一个名为deps的私有函数中,这不是一个规则,它只是项目部分中deps项的默认值,请参见以下内容:
def project do
[ app: :teste,
version: "0.0.1",
elixir: "~> 0.12.5-dev",
deps: deps ] # It's here
我的第二次考试不及格
1) test it jumps when it can (RunnerTest)
test/runner_test.exs:15
No message matching %{y: 1} after 100ms.
The process mailbox is empty.
stacktrace:
test/runner_test.exs:18: (test)
defmodule RunnerTest do
use
标签: Elixir
phoenix-frameworkecto
我有一些现有的基于Java web的应用程序,我想让它成为这些应用程序的Phoenix版本
我现有的一些数据库有许多存储过程。如何使用迁移或种子exs创建这些存储过程?有线索吗
谢谢我会在迁移中这样做。您应该在up函数中实现创建,在down函数中实现删除。在迁移中使用execute命令运行任意sql
def up do
execute "INSERT INTO add_col_migration (value, to_be_added) VALUES (1, 2)"
end
def dow
给定一个字符串,如str=“\”,然后将其呈现到其他一些程序中,如JS或Python:
# index.js.eex
console.log(„<%= str %>“)
# hello.py.eex
print(„<%= str %>“)
#index.js.eex
控制台日志(“”)
#你好,py.eex
打印(“)
结果显示在控制台日志中(“\”)
您可以看到这个问题,反斜杠将转义结束引号,并在JS中产生语法错误
问题是,我应该如何修复它
PS:我是在手机上写的
我试图弄清楚如何使用Elixir和Phoenix框架将音频文件编码为base64字符串
这就是我到目前为止得到的
@chunk_size 128
@example_file Path.join(:code.priv_dir(:my_app), "audio/example.mp3")
@base64_encoded_mp3 File.read!(@example_file) |> Base.encode64()
def listen(conn, _op
上一页 1 2 ...
11 12 13 14 15 16 17 ...
下一页 最后一页 共 125 页