尝试向客户端提供页面时,客户端中出现以下错误:
(KeyError)在%Phtest.Jobs{“@class”:“Job”、“@rid”中找不到键:id:
“#13:0”,“@type”:“d”,“@version”:1,描述:“öoisajdf”
sadöflkjasdfölkj,“工作状态:“开放”,工作类型:“开发人员”,标题:
“Foo”}Stacktrace
(phtest) web/templates/page/index.html.eex:27: Phtest.PageView.
在Elixir入门教程中,在关于的页面上有一个名为“在崩溃时删除bucket”的测试。在页面上添加代码后(我想我添加了代码,可能遗漏了什么),测试失败,assert_接收超时
test "removes bucket on crash", %{registry: registry} do
KV.Registry.create(registry, "shopping")
{:ok, bucket} = KV.Registry.lookup(registry, "shopping")
在尝试编译我的Phoenix项目的版本时,出现以下错误:
$ mix release
....
==> Generated .appup for myapp 0.0.1 -> 0.0.2
===> Missing beam file elf_format <<"/usr/lib/erlang/lib/hipe-3.11.2/ebin/elf_format.beam">>
could not find app plug {0,10,0}
$ elixir
irc上的liveforeverx已经回答了我原来的问题,我已经修改了这个问题作为后续问题
Phoenix的许多功能都依赖于插头。然而,在启动cowboy服务器时,为什么Phoenix不使用Phoenix.Endpoint.CowboyHandler.start\u链接中的插件api来启动它?为什么要调用ranch_listener_sup上的start_link
这是因为Plug的任何限制,还是因为Phoenix在Plug的api成熟之前就开始采用这种方式
我的原始问题:
凤凰城从哪里开始
阅
如何在ELixir中记录映射/结构类型,而不必实现协议字符串.Chars
require Logger
Logger.debug %{my: "map"}
** (Protocol.UndefinedError) protocol String.Chars not implemented for %{my: "map"}
(elixir) lib/string/chars.ex:3: String.Chars.impl_for!/1
(elixir) lib/string/ch
(来自Rails世界,我现在和Phoenix一起玩,试图弄清楚事情是如何运作的)
从一个scaffold开始,我有一个包含“first_name”和“last_name”属性的用户模型,我现在要做的是将它们连接到模型中的“full_name”属性,并对其进行测试
好吧,比较Rails和Phoenix可能不是最好的选择,但让我展示一下我如何使用Rails,这样我的问题就可以完全理解了:
# Model
class User < ActiveRecord::Base
def full_na
标签: Elixir
phoenix-frameworkelixir-mix
我使用brew remove elixir--force和brew install elixir。
长生不老药-v显示
Erlang/OTP 19 [erts-8.0.2] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Elixir 1.3.2
Hex: 0.13.0
Elixir: 1.3.2
OTP: 19.0.2
Built with: Elixir 1
对于给定的Ecto事务,如何改进它以自动添加SQL插入以记录已执行变更集中所有更改的值?以下是失败的尝试:
使用EXTO.Multi:
EXTO.Multi.to_列表不是一个解决方案,因为Multi可以包含EXTO.Multi.run操作(如果操作之间存在依赖关系,则需要这些操作:例如,当与第一个用户创建帐户时,我们需要在用户变更集中插入帐户id)
添加负责自动注入审核事件的最后一个exto.Multi.run也是不可能的,因为changes\u至今参数是先前操作的结果,而不是变更集
将R
在我们正在创建的应用程序中,我们有客户向我们提供他们的物品,以利用我们提供的服务。例如,客户拥有一本书,希望将其包装起来以备将来存储或检查其状况
我们决定以这种方式构建:
项目
Name
Details
Company
embeds_many :services
(embedded schema)
Service
Price
服务
Name
Details
Company
embeds_many :services
(embedded schema)
Service
Price
我们有不
我正在运行下面的代码,将列表中的数字加10。然而,我得到了一份chars的列表
result=Enum.map([1,2,3],fn x->x+10 end)
结果
\w\f\r
如果我从+更改为*,代码工作正常。
result=Enum.map([1,2,3],fn x->x+10 end)
按预期返回[10,20,30]
然而,当我从10变为32时,我也遇到了一个类似的错误,返回'@'
知道这意味着什么以及如何修复吗?谢谢在Elixir中,字符列表(两个单引号之间的值“像这样”)只是一个数字
我正在使用hope协议,编写一个简单的可测试、可扩展和可维护的代码
协议定义和实现如下所示:
defmodule SapOdataService.Auth do
alias SapOdataService.Auth.UserLogin
alias SapOdataService.Auth.UserInfo
defprotocol Auth do
@moduledoc """
Protocol for SAP authentication.
"""
尝试动态地构建这个
> from u in Table,
select: [
u.field1,
u.field2, %{
"1" => fragment("some fragment"),
"2" => fragment("some fragment "),
..
"n" => fragment("some fragment"),
}
]
是否有任何方法可以在
我想通过Hound为访问我网站的用户利用PhantomJS的一些功能。因为“PhantomJS webdriver服务器”必须是第一个,所以我试图找出一种“自动”实现的方法(即,当用户第一次访问站点时,或者当他们访问使用Hound的页面时)。我认为最好由Phoenix来处理,因为Phoenix已经在处理所有用户请求,而不是一种额外的技术来处理一切。也许是npm或者早午餐什么的。我将非常感谢任何关于这方面的具体或一般性建议。谢谢 好吧,我想到了一个可能会奏效的办法。在我想要的功能所在的视图或控制器
标签: Elixir
travis-ciphoenix-frameworkecto
我正在处理的回购协议是:
在非travis计算机上运行测试时,所有测试都通过
在特拉维斯身上,测试现在失败了。错误表明插入的用户不是唯一的。当记录Repo.all(User)时,travis的数据库中仍然有一个用户,并且在每次测试之前不会刷新数据库
本地Repo.all(User)是一个空列表,数据库正在正确刷新
为什么数据库刷新是在本地进行的,而不是在travis上
如何确保travis测试在每次测试之前都有一个干净的数据库
提前感谢您的帮助原因是我们的travis脚本也在运行我们的种子文件
我是Phoenix的新手,正在测试一个自定义插件,如果不满足某个条件,该插件应该重定向到/404.html页面。当我尝试成功/失败路径时,代码正常工作,但我很难理解为什么我的测试方法失败了
测试失败归结为以下几点:
%Plug.Conn{} |> Phoenix.Controller.redirect(to: "/404.html")
我的期望是,这应该返回一个conn对象,然后我可以对其运行断言。但是,当我尝试运行上述代码时,会出现以下错误:
** (UndefinedFunction
我试图理解Phoenix中不同的render函数之间的区别。具体来说,我注意到Phoenix视图和Phoenix模板中有几个不同的渲染函数
例如,在Phoenix控制器中,常见的情况如下:
# assume this is UserController
def index(conn, _params) do
users = Repo.all(Users) # let's assume that this gives you all your users
render conn,
标题说明一切!我在任何地方都找不到那个信息
我在主要的Elixir文档网站上搜索“时间表”
我会“+长生不老药定期给自己发个信息”
我想要“+长生不老药计划信息”
谢谢 我发现,这让我可以定期调用自己的代码:
defmodule Regular do
use Xenserver
def init(state) do
schedule_call
state
end
def handle_info(:ping, _from, state) do
sch
标签: Elixir
phoenix-frameworkecto
以下是两种模式之间的多对多关系——技术和工作,如:
defmodule JobJawn.Listing.Job do
@moduledoc """
A job is a position for which a JobJawn user might want to apply. This is the
central model for the system - meaning it's the reason a user might want to
visit the
请注意,我正在试图理解Elixir中进程中发送和接收消息的过程
假设我有一个方法定义(从上的库中),因此:
和另一个自定义方法来注册侦听器
@doc """
Registers the caller process as a receiver for all the events for which
the filter_fun returns true.
"""
@spec start_listening(GenServer.server, fun) :: :ok
def st
此代码按预期工作:
defmodule Module.Tools do
def add_path(module, suffix) do
(String.Chars.to_string(module) <> "." <> suffix) |> String.to_existing_atom
end
end
我的问题是:长生不老药是否提供了一个现成的功能?是的,获取原子列表或两个原子并将它们连接起来:
iex(1)> Module.concat(
我是Elixir的新手,一直在调试我的代码,从iex-S mix开始,在函数中设置iex.pry断点。我现在已经将一些代码打包为命令行应用程序(使用escript),并在通过escript可执行文件运行代码后尝试调用IEx.pry。但是,该函数不可用--IEx显然没有与可执行文件捆绑在一起。我如何从我的可执行文件中访问IEx.pry?虽然强烈建议您这样做(escript被认为是一个发布/生产实体,您应该调试它直到它工作,然后再发布,)仍然有可能:只需在项目的mix.exs中的应用程序列表中列出:
标签: Elixir
phoenix-frameworkphoenix
我对这种语法感到非常困惑:
create table(:topics) do
add :title, :string
end
create是一个接受参数table()的函数,这是另一个函数,如果我错了,请更正?但接下来是一个功能体
有人能解释一下它是如何工作的吗?是一个接受两个值的宏。就因为你把它叫做
create table(...) do
...
end
你不必这么做吗。这只是一个函数。你可以把上面的陈述写成
table = table(:my_table)
create my
标签: Elixir
phoenix-frameworkecto
我有一个具有关联的外部模式设置。我希望能够动态地添加/删除关联,保持初始关联
change_one = Changeset.put_assoc(changeset, :foo_assocs, [%{index: 1}])
...
foo_assocs: [
#Ecto.Changeset<
action: :insert,
changes: %{index: 1},
errors: [],
data: #Linker.CustomForms.FooAss
我试图在凤凰城进行以下测试:
别名BarronWatchCompany.MWS
别名BarronWatchCompany.账户
@valid_attrs %{amazon_order_id: "some amazon_order_id", buyer_email: "some buyer_email", buyer_name: "some buyer_name", earliest_delivery_date: "some earliest_delivery_date", last_update
我正在尝试将所见即所得编辑器tinymce与包含textarea字段的phoenix LiveView集成。在使用LiveView之前,我将其作为节点模块库导入到app.js文件中
import tinymce from '../node_modules/tinymce/tinymce'
然后通过
tinymce.init({
selector: 'textarea',
plugins: ...
})
为了能够验证模板中的表单输入,我将其转换为LiveView,并通过LiveView
标签: Elixir
phoenix-frameworkecto
我正在尝试获得一个有很多:通过在EXTO中工作的关系,在用户模型和组模型之间建立很多关系
我能在网上找到的唯一信息是JoséValim的一篇帖子中的嵌套属性(顺便说一句,这很好)
由于系统中已经存在这些组,所以我希望进行多选输入。我在做那件事时遇到了几个问题。我不认为可以直接在变更集中分配组关联,因为每次尝试分配时都会出现错误。我的下一个想法是手动完成这项工作(查找、删除和插入GroupMembership记录),但我不确定这是否是正确的方法,我想先得到一些建议
因为代码示例有很多行,所以我做了
我正在Phoenix框架上用Elixir构建一个应用程序,该应用程序具有从Spotify API收集数据并将其持久化到PostgreSQL 9.4数据库以快速访问的功能。我在更新使用嵌入\u many的现有表行时遇到问题
我有轨道和专辑艺术外星模型,看起来像这样:
defmodule CoolApp.Track do
use CoolApp.Web, :model
alias CoolApp.AlbumArt
alias CoolApp.Repo
alias CoolApp.T
我的意思是,如果字符串为空或仅包含空格,则该字符串为空。
例如,“”、“和”\n“都是空的
在Rails中,我们有.blank?方法
Elixir(或Phoenix框架)中是否有类似的东西?有类似的东西可以将您的3个示例转换为您可以比较的“
iex(4)> String.strip("\n") == ""
true
iex(5)> String.strip("") == ""
true
iex(6)> String.strip(" ") == ""
true
关于它
我有一个应用程序,其中我列出了父母和孩子。当我添加一个孩子时,我需要得到一个要显示为下拉列表的父母列表。菲尼克斯的Rails中是否有类似于的集合\u select?我想显示用户的名称并使用user_id作为参数
我还想按站点id确定家长列表的范围。您可以使用Phoenix.HTML.Form中的函数
在控制器中,您可以通过查询获取父对象:
query = from(p in Parent, select: {p.id, p.name})
parents = Repo.all(query)
我们
我在浏览一些长生不老药Koan时遇到了以下问题:
think "taking some items the other way" do
numbers = 1..10
assert Enum.take(numbers, -2) == __?
end
在花费了大量时间之后,我终于在iex中看到了它,我得到:
'\t\n'
经过更多的实验:
Enum.take(numbers, -4) == '\a\b\t\n'
Enum.take(numbers, -5) == [6,
我是新来的
如果我有下面的地图
recos = %{"itemScores" => [%{"item" => "i0", "score" => 0.0126078259487225},
%{"item" => "i3", "score" => 0.007569829148848128},
%{"item" => "i4", "score" => 0.007023984270125072},
%{"item" => "i33", "score" =&
我正在学习Elixir,有点困惑,为什么我们必须使用同一函数的多个定义来分支,而不是使用case语句。以下是第一版第81页的示例,用于计算文件中的行数:
defmodule LinesCounter do
def count(path) do
File.read(path)
|> lines_num
end
defp lines_num({:ok, contents}) do
contents
|> String.split("\n")
标签: Elixir
phoenix-frameworkexrm
也许我把它放错地方了,但是我的vm.args文件没有进入发行版。我只得到它构建的默认值。你应该把它放在./rel目录中,对吗?与您发布的版本相同?查看关于此问题的最后一条评论@Matt:您是否正在尝试在Windows Matt上使用exrm?我知道Windows上的exrm存在一些问题,但我不认为这是其中之一。您使用的是标准项目还是伞式项目?标准项目Matt--可能需要更多详细信息。哪个版本的exrm?哪个版本的长生不老药?操作系统?等等(我的意思是假设这对你来说仍然是个问题:)
我为API客户端编写了以下代码:
create_request
|> emit
在生产中,emit()使用在配置中指定的http客户端(httpoison)和应用程序。get_env(…)。在测试环境中,http客户端不是httpoison,而是我制作的一个模块,它只是执行以下操作:
def request({method, url, body, headers}) do
send(self(), {method, url, body, headers})
end
然后我的测试:
我有一个用户型号:
defmodule AddressBook.User do
use AddressBook.Web, :model
schema "users" do
field :last_name, :string
field :birthday, Ecto.Date
[...]
我想在生日用文字呈现时间(过去):
<%= time_ago_in_words user.birthday %> ago
以前
但这导致了这个错误:
如何修复此问题
因此,根据EXTO文档中的示例,我有以下内容:
defmodule Post do
use Ecto.Schema
schema "posts" do
many_to_many :tags, Tag, join_through: "posts_tags"
end
end
及
现在有哪些不同的方法可以:
a) 将现有帖子与现有标记关联
b) 取消现有帖子与标记的关联
注意:我不希望创建嵌套资源,但实际情况是我有一个%Post{}和一个标记id,我希望创建或销毁它们之间的关联。
你是怎么做的WHERE!=“某物”在外太空中?我在用postgres
这就是我所拥有的(不起作用):
u=User |>exto.Query.where(id:not 444)|>MyApp.Repo.one您需要使用exto查询宏来构建此查询。对于基于“表达式”的语法,可以传递一个列表作为第一个参数,其中包含要绑定表的名称:
User |> where([u], u.id != 444)
有关更多信息,请查看。您需要使用EXTO查询宏来构建此查询。对于基于“表达式”的语法,可以传递一个
我有一个统计控制器,它获取date_from和date_to,计算date_from和date_to之间的订单数量和收入金额
统计信息\路径POST/api/v1/statistics Myapp.StatisticsController:计算
我读过,也读过。但我找不到我该如何解决这个问题
我怎样才能让它工作?我错过了什么
提前谢谢
-编辑错误
[info]POST/api/v1/statistics
[调试]查询确定源=用户db=0.4ms
选择u0.id、u0.username、u0.e
混合文件
elixir -v
Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:8:8]
[async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Elixir 1.3.4
$mix compile似乎可以工作,但$mix test返回上述错误
感谢您的帮助
编辑:
运行phoenix.server时也会看到类似的情况
defmodule Rumbl.Mixfile
我在一个伞形项目的子应用程序(phoenix框架)中做了一个简单的任务
defmodule Mix.Tasks.Apidocs do
defmodule Generate do
use Mix.Task
@shortdoc "Crawls products for a given store id, or all stores if no store id is given."
def run([]) do
Mix.Task.run "compile"
标签: Elixir
graph-theoryphoenix-frameworkcytoscape.jscytoscape
我想开始使用Phoenix进行个人项目,使用Cytoscape服务器端(Cytoscape是一个可用的图论库)
我可以在服务器上使用带有Phoenix的js库吗?这在技术上有意义吗?因为要求查找非站点资源,所以投票以非主题结束。@JustinWood,我可能错过了一些内容,但我在帮助/主题中没有看到为什么我不能问这个问题?如果我不能在这里问这个问题,我在哪里可以问?谢谢这里有一个数字列表,上面写着,如果你想找到一个软件库或任何其他非网站资源,你会被认为是离题的。这是因为他们往往会吸引固执己见的答
我正在尝试使用连接中的当前用户分配创建多对多关系。问题是我无法访问模型中的conn。我试着用变更集传递它,但这似乎不是正确的方法
最好的处理方法是什么?我想我可以将conn导入模型。有什么理由我不想那样做吗
下面是我的变更集现在的样子
def changeset(model, user, params \\ :invalid) do
model
|> cast(params, @required_fields)
|> put_assoc(:users, [us
假设我有两个模式:User和Job,其中Job是消防员、教师、警官,等等
每个用户只能有一个作业(有一个),但是每个作业都会有无限多的用户,我真的不关心从给定的作业中找到用户
我想不出你必须在用户上定义一个has one,而不在作业上包含一个所属,并且仍然能够预加载关联。我知道我可以使用UserClass表将其定义为一个many-to-many,但对于这么简单的事情来说,这似乎有些过分了。在这里,我很难对我的选择保持清醒的头脑
每个用户只能有一个作业(has_one),但每个作业将有无限多的用户
假设我有这样一个函数:
def something(callback) do
case *some condition* do
0 ->
:ok
1 ->
{:error, :foo}
_ ->
callback.()
end
end
其中回调函数可以返回:ok或{:error,*some atom*},其中some atom是未知原子
现在,我想知道是否有一种方法可以为something/1函数编写不使用通用
我是长生不老药的新手,所以我对这三种说法有点困惑
a = [ [ 1, 2, 3 ] ]
[a] = [ [ 1, 2, 3 ] ]
[[a]] = [ [ 1, 2, 3 ] ]
第一个和第二个语句按预期返回结果,但第三个语句抛出错误
**(MatchError)右侧值不匹配:[[1,2,3]]
我想知道为什么第三句话抛出了一个错误a匹配任何值[a]匹配一个列表,该列表恰好包含一个可以是任意值的元素[[a]]匹配一个元素的列表,该列表包含一个元素的列表,该列表可以是任意值
表达式[[1,
标签: Elixir
phoenix-frameworkvue-cli-3
我正在Phoenix内部使用VueCLI3,并切换到webpack4的SplitChunk功能。在过去,我只创建了1个app.js和app.css文件,但启用了splitChunk功能后,现在几乎有5个css文件和10个js文件
所有文件都放在/priv/static/js和/priv/static/css中
我一直在使用它来包含单个CSS和JS文件,例如
<script type="text/javascript" src="<%= Routes.static_path(@con
当你执行
MIX_ENV=prod PORT=4001 elixir --erl "-detached" -S mix phx.server
在VPS服务器的终端上。是否重新启动VPS服务器
是否关闭phx.server 无论您在操作系统中启动什么进程,重新启动VPS服务器都会将其关闭。基本上,重新启动操作系统会杀死所有进程
要使流程从操作系统开始,应该使用操作系统工具。大多数现代Linux发行版都使用传统的Ubuntu
要使进程重新启动,应提供服务配置文件,并启用服务以在目标计算机上重新启动
标签: Elixir
phoenix-frameworkmozillavirtual-realitywebvr
我一直试图在本地运行mozilla集线器,因为我想定制它。但问题是,文档包括在aws和digital ocean上的部署
后来我克隆了集线器客户端
还克隆了网线服务器
我按照上面提到的完全相同的指示去做。如果我错了,请纠正我
单独运行客户端时:
1.克隆客户端
2.使用npm ci安装依赖项
3.npm run dev在本地运行客户端。
4.单击场景编辑器会显示“无法获取/说话”
使用网状服务器运行时:
1.我遵循了中提到的相同步骤
2.安装了所有依赖项PostgreSQL和Elixir+Pho
标签: Elixir
phoenix-frameworkecto
我对长生不老药还不熟悉,所以我很难把它搞定。如果您想查看其他文件,请告诉我-我还不知道哪些文件重要或不重要
我有一个“帐户”对象,它有许多“用户”对象。我正在尝试使用exto.Changset.cast_assoc使用关联帐户更新用户。它在iEx中运行良好,但在单元测试中,我得到:
(Ecto.ConstraintError) constraint error when attempting to update struct:
* users_account_id_fkey (foreign_k
标签: Elixir
gen-servererlang-supervisor
我正在尝试在我的应用程序中构建一个监督树,其中一个给定的GenServer将不得不监督其他GenServer。这不是一个应用程序,只是一个简单的GenServer,需要监督其他人
为此,我主要关注以下文章:
代码
上面的文章让我找到了以下代码:
defmodule A.Server do
use Supervisor
alias B
def start_link, do:
Supervisor.start_link(__MODULE__, nil, name: __MO
上一页 1 2 ...
16 17 18 19 20 21 22 ...
下一页 最后一页 共 125 页