我正在歌曲文件中搜索id3标签。文件可以有id3v1、id3v1扩展标记(位于文件末尾)以及id3v2标记(通常位于开头)。对于id3v1标记,我可以使用File.read(song_文件)并提取最后355个字节(扩展标记为128+227)。但是,对于id3v2标记,我需要从一开始就在文件中搜索10字节的id3v2模式。我希望在搜索不同的标记时避免重复打开和关闭同一文件的任何开销,因此我认为最好的方法是使用file.stream!(song_文件)并将文件流发送到不同的函数以搜索不同的标记
de
我按照创建自己的模块插件,从会话加载当前用户。当使用插件模块时,@user没有被分配,但是当我在router.ex中将其作为私有函数调用时,它可以正常工作
这是我的网络/路由器:
defmodule MyApp.Router do
use MyApp.Web, :router
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug :p
我刚刚在我的Windows7电脑上安装了elixir via Chocolate。在C目录的根目录下,在管理员命令提示符内,我运行了:
c:\> cinst elixir
这成功地安装了erlang和elixir--v.1.0.4。没有失败,所有成功消息。然后我重新启动命令提示符并运行
c:\> iex.bat
我收到一个错误:
“iex.bat”不被识别为内部或外部命令、可操作程序或批处理文件
我通常使用mac电脑,所以对于Windows我很无知。还尝试在git bash中运行
在Phoenix中,是否有某种方法可以指定要使用的视图,而不是让控制器从名称空间变形
我有多个控制器,对于每个控制器的视图,方法是相同的。我想创建一个视图,并将其与(几乎)所有控制器一起使用
这可能吗?更重要的是,在我的情况下,这是一种不好的做法还是合理的做法?您可以使用put\u view/2设置视图模块。根据你的描述,这不是一个坏习惯。您可以将以下代码放入控制器中:
plug :put_view, MyApp.TheView
或者,您可以修改控制器内单个功能的视图,例如:
def in
我希望为布局添加额外的布局参数,如@internal。例如,用于@title的@title,以及用于为单个页面加载javascript的区域
window.onload = function () {
@onload_js
}
这些都是在布局中设置的,所以我不确定在凤凰城处理这些问题的最佳方式。谢谢:D.对于页面标题,您只需从控制器传递一个值:
def edit(conn, params) do
render(conn, "edit.html", page_title: "Edit
由于datetime\u添加(exto.datetime.utc,0,“天”)
datetime\u添加了什么(exto.datetime.utc,0,“day”)返回或表示什么
使用EXTO查询上周记录的正确方法是什么
datetime_add(exto.datetime.utc,0,“day”)将当前日期时间增加0天,因此它基本上不做任何操作
我会在这里使用日期而不是日期时间,因为你对一周中的几天更感兴趣。所以可能是
defp weekly_orders do
{interval
标签: Elixir
phoenix-frameworkecto
我是否可以返回最后一行中的时间戳,而不在花括号中提取它
{:ok, time_stamp} = Myapp.Repo.insert(changeset) # |> Map.get time_stamp
time_stamp
# {:ok, %Myapp.TimeStamp{__meta__: #Ecto.Schema.Metadata<:loaded>, active: true...}
{:ok,time_stamp}=Myapp.Repo.insert(changese
标签: Elixir
phoenix-frameworkecto
有没有办法让一个唯一的约束对一个嵌入的模式起作用
下面给出的代码给出了例外情况:
无法将约束添加到变更集,因为它没有源
字段name来自架构persons和字段email来自accounts
模式:
embedded_schema do
field :name
field :email
end
变更集:
struct
|> Ecto.Changeset.cast(params, [:name, :email])
|> Ecto.Changeset.valid
假设我的函数直接在头部进行模式匹配,有没有一种方法可以让我在不调用函数的情况下检查函数是否具有与给定输入匹配的模式?有点像匹配?但用于函数。当时,我不关心,我只匹配原子或元组中的原子
e、 g
及
我正在修改GenServer中的状态,使用一系列函数来处理一些输入,而忽略其他输入。每个函数接受一个元组和一些状态,如果函数头匹配,则返回修改后的状态;如果不匹配,则返回状态。我现在有一个try/rescue包装器函数,它并不漂亮。输入是可变长度元组,第一个元素是原子标识符 严格地说,这是不可能的。只
我在第1页发送一个ajax请求,当我返回响应时,我在第2页通过javascript在客户机上执行重定向。我想要的是在页面上显示一个闪光灯。只是“放闪光(“某物”)不起作用,因为我只能从动作中调用它
我在第1页返回了来自的ajax响应。而我想在第2页上显示flash,在那里我会被javascript代码重定向。我怎样才能做到这一点?我对flash工作原理的理解(主要来自Rails世界,但我没有理由认为Phoenix的处理方式有所不同)如下:
您的flash消息包含在呈现的响应中。通常,此响应是重
标签: Elixir
phoenix-frameworkecto
我有一个模型:
defmodule VideoChat.User do
use VideoChat.Web, :model
schema "users" do
field :device_identifier, :string
field :matches, :map
timestamps()
end
...
end
我如何查找所有在匹配哈希中具有酷键的用户
用户|>其中[u],u.匹配[cool]!=nil |>limit1 |>VideoCha
我有一些代码,我想在我的其他Phoenix/Elixir项目中重复使用,但我不想上传到hex.pm并通过互联网分发。除了将代码复制粘贴到我的每个项目中的最简单方法外,我如何在我拥有的不同项目之间共享它?正如文档中明确指出的那样,mix除了支持hex.pm之外,还支持两种依赖关系:
Mix还支持Git和路径依赖关系:
{:foobar, git: "https://github.com/elixir-lang/foobar.git", tag: "0.1"}
{:foobar, path: "pa
我已经在nginx后面安装了phoenix应用程序。Nginx正在服务https流量
我希望coherence的电子邮件包含https URL,如https://my_domain.com/...,但我不知道怎么做
以下是我的应用程序的配置:
config :my_app, MyApp.Endpoint,
http: [port: 8080],
url: [host: "my_domain.com", port: 443],
# ...
使用此配置,电子邮件中的URL如下所示:my
我正在使用长生不老药中的地图
有些是%{“foo”:“bar”}格式
还有一些在%{“foo”=>“bar”}
我有两张地图:
a = %{"foo": "bar"}
b = %{"foo" => "bar"}
我如何比较这两张地图
Map.equal?(a, b)
返回false您拥有的地图格式不同。他们有不同的钥匙
iex(1)> Map.equal? %{"foo": 4}, %{:"foo" => 4}
true
使用第一个(“foo”:)只不过是编写第二个(:“
标签: Elixir
phoenix-frameworkecto
免责声明:我是新的凤凰和长生不老药
我试图创建一个非常基本的API,用于查询后端MySQL数据库并获取单个记录,编码为JSON并返回
我有一个已经存在的MySQL数据库,它是现有Python应用程序的一部分,我想在Phoenix中重构该应用程序,但保持数据库不变,让新的Phoenix应用程序连接并查询它
因此,由于数据库已经存在,并且我没有创建新的模式,所以我为每个表定义了我的模式,并将它们放在我的/lib目录中
我试图查询TestResultDetail表并获取给定序列号的最后一条记录。Tes
在Plug.Conn.assigns中设置key:current_user后,如下所示:
conn |> assign(:current_user, user)
如何删除此条目?要删除其中一个conn.Assignment,下面的示例是等效项:
conn = Map.put(conn, :assigns, Map.delete(conn.assigns, :current_user))
conn = %{conn | assigns: Map.delete(conn.assigns, :
我在长生不老药档案中看到过:
@type t :: %__MODULE__{
var1: String.t,
var2: String.t,
var3: String.t,
var4: map,
var5: integer,
var6: list
}
这是干什么的?它是干什么用的
这是什么
它实际上是一个类型规范或类型规范。它定义了一个以当前模块命名的类型,并指定该类型是一个结构,
当我尝试使用其他参数时,这对于Erlang文档应该是非常好的:
iex(1)> :dets.open_file(:storage, [{:type, :set}])
{:ok, :storage}
UPD:
试试这个
iex(4)> :dets.open_file(:storage, [{:type, :set}, {:file, 'file'}])
{:error, :incompatible_arguments}
请尝试使用单引号作为文件名。大多数Erl
我在我的phoenix应用程序中使用
我在config.exs中写道:
config :canary, repo: MyApp.Repo,
unauthorized_handler: {MyApp.Helpers, :handle_unauthorized},
not_found_handler: {MyApp.Helpers, :handle_not_found}
并创建了帮助程序:
defmodule MyApp.Helpers do
use Phoenix.C
标签: Elixir
phoenix-frameworkecto
我有两个表,用户和角色。我试图做的是在它们之间创建简单的关联,用户可以有多个角色
在数据库中,它应该如下所示:
User.changeset(
%User{},%{email: "test@gmail.com", username: "test", roles: [
%Role{name: "ADMIN"},
%Role{name: "USER"}
]})
|> Repo.insert
角色:
使用者
到目前为止,我提供了以下代码
将我的应用程序从Livestory重命名为Citybuilder后,我无法启动它
mix phx.server返回:
Could not render "app.html" for Citybuilder.Web.LayoutView, please define a matching clause for render/2 or define a template at "lib/Citybuilder/web/templates/layout". No templates were comp
标签: Elixir
phoenix-frameworkecto
使用Exto v2.2.6,Phoenix 1.3
我有一个带有新闻提要的博客应用程序。它的工作原理如下:
query =
from n in Newsfeeditem,
where: n.user1_id in [2,3,4]
用户可以提交帖子
用户可以跟随其他用户
当用户提交帖子时,会在Newsfeed表中添加一项
用户可以看到他们关注的用户提交的帖子的新闻提要
我想使用exto.Query从给定用户正在跟踪的用户那里获取新闻提要项目的列表
快速背景。以下是对象:
使用者
我正在生成一个带有Task.async/3的函数,并使用带有超时的Task.yield/2获得结果。函数完成后,调用进程将收到两条消息:
{#Reference<0.2781211517.3250323457.144521>, the_result_of_the_function}
由监视器发送,通知被监视的进程(任务)已关闭
如果任务在超时之前完成,task.yield/2将这些邮件从邮箱中取出并返回正确的结果。但是,如果任务在超时后完成,task.yield/2返回nil,当这
在以战术领域驱动设计为模型的事件源系统中,我很难处理以下情况:
选择要在发票上显示的项目
所有选定的项目构成发票,或者如果无法分配任何选定的项目,则不会分配任何项目,并且发票不存在
不变:一个项目不能在多个发票上
一旦存在包含项目的发票,就应将项目转换为价格
我的计划是
发票聚合类型,因此发票有一个标识,可以根据该标识对项目进行分组,并将计算出的价格存储在其中
我将有一个Item aggregate类型,它通过为每个聚合实例存储一个对一个发票的引用来跟踪不变量
我想我需要对发票聚合中的新项目
我正在尝试使用EXTO让加入工作。EXTO似乎默认为“id”作为连接条件的关键字段。尝试使用架构中的外键设置将其更改为list_id和user_id,但似乎不起作用。我错过了什么
query =
from(i in SgListItems,
join: l in assoc(i, :sg_lists),
join: u in assoc(i, :sg_users),
select: [l.list_id,
标签: Elixir
phoenix-frameworkphoenix
目前,我有一个角色插件,如下所示:
plug Roles, :role
它接收特定角色作为第二个参数,并从正在使用的当前令牌中获取当前用户。我是这样使用控制器模块内部的插头的:
plug Roles, :manage_users when action in [:index, :show, :delete]
问题是,我想将所有这些逻辑移到router.ex,以明确控制器的配置
从文档中,默认的管道/1和管道/1只接收一个作为标识符的原子,因此无法将参数传递给我的插头
使用这个插头的正确方法是
foo_live.ex:
defmodule LiveviewappWeb.FooLive do
use LiveviewappWeb, :live_view
require Logger
@impl true
def mount(_params, _session, socket) do
{:ok, assign(socket, msg: "this is a message", results: %{})}
end
def rende
我有一个简单的用户/手机应用程序,每个用户都有许多手机
模型定义如下:
user.ex
defmodule UserManager.User do
use Ecto.Schema
schema "users" do
field :email, :string
has_many :phones, UserManager.Phone
end
end
defmodule UserManager.Phone do
use Ecto.Schema
标签: Elixir
phoenix-frameworkecto
我正在用ecto编写phoenix应用程序,测试中有以下代码片段
{:ok, data} = Poison.encode(%{email: "nonexisting@user.com", password: "mypass"})
conn()
|> put_req_header("content-type", "application/json")
|> put_req_header("accept", "application/json")
|> post(session_
我是长生不老药的新手。我想在Phoenix应用程序中初始化并使用模块,例如,我发现了一个很好的模块,我可以初始化它并将实例存储为worker并在例如Controller中使用它吗?基于串行模块,如何使用启动链接,然后在控制器/通道中发送数据?我是模块的作者。我已经更新了自述文件以包含一些基本示例
您可以在基于Phoenix的web应用程序中使用它,我在我的一个项目中使用它
最好创建另一个进程(可能在您的监控树中的某个地方命名为worker),该进程启动并拥有串行端口,以抽象底层通信并接收和处理传
我可以使用mix在全球范围内安装一些软件包吗?我喜欢npm的全局选项或gem的安装这样的行为-它可能对我在任何地方使用的软件包都很有用,如csv或yaml,某些软件包将提供一个可以全局安装的存档文件
例如凤凰城:
mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-1.0.3.ez
这允许全局访问mix phoenix.new任务。但是,对于允
这是别人问的一个问题的结果
查看文档,看起来这只是重新加载Elixir代码。对吗?如果是这样的话,菲尼克斯生活会做什么?live reload是否也负责重新加载静态页面和/或JS资源
我只是想了解这两种设置之间的区别,以及在哪些用例中,一种是合适的,而另一种是合适的。Phoenix。CodeReloader负责在web目录中重新加载代码(以及从Phoenix 1.2开始的lib)。这意味着,如果您更改了web中的某个内容(例如控制器),那么Elixir代码将被重新加载并在您的下一个请求中使用。您
标签: Elixir
phoenix-frameworkjsonbecto
我一直在尝试将JSON保存在postgresql的jsonb列中,我也尝试过教程,也开始阅读Ecto API和Postgrex,但无法使其工作,一个工作示例将启发我:)到目前为止,我已将其添加到配置中
config :bonsai, Bonsai.Repo,
adapter: Ecto.Adapters.Postgres,
username: "demo",
password: "demo123",
database: "bonsai_test",
hostname: "lo
一个模块中可以有多个代理吗?例如,我正在创建一个游戏,我需要一个游戏状态的包装器以及一个用户状态的包装器。例如:
defmodule TicTacToe do
def start_game do
Agent.start_link(..., name: Moves)
Agent.start_link(..., name: Users)
end
end
文档中的示例显示了一个代理。start\u link,这让我觉得不应该有多个代理 尽管拥有您想要的任意多的代理是绝对合
我有这个代码,可以在数据库中插入一条记录。完成此操作后,我需要获取新记录的id以传递给客户端
msg_record = %Message{
fromEmail: params["fromEmail"],
body: params["body"],
room: room_id
}
Repo.insert!(msg_record)
问题是,执行此操作后,msg_record.id仍然为空
在Rails中,我会执行msg\u record.reload.id-是否
我正在编写一个Elixir包,我想指定一个默认的应用程序配置(用户可以通过在config.exs中指定自定义值来覆盖该配置)。我最初将它们放在项目的config.exs中,直到我意识到依赖此库的项目不会加载配置文件
配置文件本身告诉您:
此配置在任何依赖项之前加载,并且受到限制
对这个项目的支持。如果另一个项目依赖于此项目,则此
文件不会被加载,也不会影响父项目。因此,,
如果要为应用程序提供默认值
第三方用户,它应该在您的“mix.exs”文件中完成
我一直在努力理解如何在我的mix.exs
我正在尝试从运行计算器演示。它需要在mix.exs文件中添加新的ExActor模块作为依赖项,如下所示
defp deps do
[
{:exactor, "~> 2.2.3", warn_missing: false}
]
end
我做了mix deps.get和mix deps.update--all来下载依赖项。但是,当我使用mix run-e CalculatorDemo.exs运行项目时,它抛出以下错误
mycom@MACHINE:~/calculator$ mix
我试图用理解来显示数据库中的记录。但是我不能完全理解(坏笑话)出了什么问题?错误消息,虽然我确信它告诉我什么是错误的,但我不明白它想说什么
错误:
用户:
联盟管理员:
同样,我要做的就是在联赛索引页面上按名称列出系统中的所有联赛。谢谢你的帮助 您应该替换这一行:
<%= league["name"] %>
为此:
<%= league.name %>
league是一个结构,为了能够读取它的属性,您需要使用点符号。您应该替换此行:
<%= league
我是elixir的新手,最近发现GenServer是管理客户机/服务器API的好方法。所以我尝试创建一个GenServer模块来管理数据库连接,但失败了。下面是我的代码:
defmodule RedisClient do
use GenServer
require Logger
# Client
def start(url) do
GenServer.start(__MODULE__, {url})
end
def init({url}) do
Log
我有一个Elixir模块,其中包含一个演示,我在开发和与其他系统的集成测试中使用它。我不希望为prod环境编译该模块。我是否可以使用mix/config的一些可爱技巧来确保此模块在某些环境下不可用?Phoenix解决此问题的方法是为mix.exs中的elixirc\u路径指定不同的值,以适应不同的环境。以下是实现这一目标的方法:
def project do
[
..,
elixirc_paths: elixirc_paths(Mix.env),
..,
]
en
我的travis.yml中有以下内容
language: node_js
node_js:
- 6.10
language: elixir
elixir:
- 1.2.2
otp_release:
- 18.2.1
但当我在特拉维斯身上跑步时
**(Mix)找不到Mix.Project,请确保Mix.exs文件可用
“mix deps.get”命令失败,并在运行期间以1退出
我没有用于elixir项目的文件,我只希望在travis上运行时安装elixir(iex)。如何禁用travis检查M
标签: Elixir
phoenix-frameworkplug
我需要将流量从Http转发到Https,SSL在负载平衡器上,所以我需要做的就是使用plug\u SSL转发头,所以在我的prod.exs中我添加了:
config :web, Web.Endpoint,
force_ssl: [rewrite_on: [:x_forwarded_proto]]
在我的prod.exs中删除config:web,web.Endpoint上的所有其他内容
它不起作用
我做错了什么
我是否需要将强制ssl放入我的路由器
提前感谢。您可能需要仅为未用于健康检查或
标签: Elixir
phoenix-frameworkphoenix
当我这样做时(在iex-S mix):
工作正常,但当我添加行时:
User.registration\u变更集(%User{},%{})
我得到:
**(UndefinedFunctionError)函数Sling.Accounts.User.registration\u变更集/2未定义或私有
(sling)sling.Accounts.User.registration_变更集(%sling.Accounts.User{{{{uuuu meta}{uuuu:}exto.Schema.Meta
所以我在做一个PostGis计算。我有一个用户和一个地点模型。每个都有一个:geom,而Place有一个虚拟的距离字段。我要按距离订购,也要选择它。我让它像这样工作,但我担心它会做两次postgis计算。有更好的方法吗
from(
...,
order_by: [asc: st_distance(u.geom, p.geom)],
select: %{p | distance: st_distance(u.geom, p.geom)}
)
您可以使用别名重用该计算值,尽管您必须使
我有三张桌子,工作,注册和技能。关联是指一个作业有多个注册,并且注册属于一个作业。注册有很多技能,技能属于工作。只要一个人没有两次相同的技能,我的db就可以携带多达5项类似技能
问题:
我试图以如下表格格式呈现一个人的技能:
我在模板dashboard.ex上根据应聘者申请的职位对他们进行分组,如下所示
<%= for {k,v} <- sort_by_job() do %>
<tr>
<td rowspan="8"><%= k %&
我有这张地图:
%{
"$include" => %{
"hospitals" => %{
"$include" => %{"rooms" => %{"beds" => %{}}},
"$order" => %{"id" => "$asc"}
},
我正在研究一个问题,一个长生不老药博士后司机
然而,我被下面的跟踪弄糊涂了。(为了便于阅读,我只删除了msg\u recv/4的冗长参数)
16:52:54.323[错误]GenServer#PID终止
**(FunctionClauseError)Postgrex.Protocol.msg_recv/4中没有匹配的函数子句
(postgrex 0.15.5)lib/postgrex/protocol.ex:2837:postgrex.protocol.msg_recv(…SNIP)
(post
标签: Elixir
ectophoenixabsinthe
我正在尝试解析以下内容(这是解析程序函数的返回值,并将其传递给resolve宏):
这将返回以下经典错误:
** (Protocol.UndefinedError) protocol String.Chars not implemented for %{color: %{exterior: ["is invalid"], interior: ["is invalid"]}} of type Map. This protocol is implemented
我是elixir的新手,我正在尝试对接收到的数据执行数学运算。在这种情况下,计算从用户处获得的工资的十分之一,并抛出以下错误:
**(算术错误)算术表达式中的参数错误
m、 例:11:m.calc/0*
这是我的密码
def calc do
salary=IO.get(“您的薪水是多少?”)|>String.trim
x=工资
IO.puts“你这个月的十分之一是:{(x*0.01)}”
结束
出现此错误的原因是,IO.get将为您提供二进制文件(例如字符串)。您可以使用IO.inspect(
如果调用应用程序,start和eval之间是否存在差异?请确保eval代码中的所有(:app)都已启动?由于某些原因,在使用eval启动应用程序时,我在连接libcluster节点时遇到问题
我收到此错误无法连接到:\“app@10.32.0.60\“:不是网络的一部分
使用上的文档中的启动时,它连接良好
eval命令启动自己的VM实例,但不启动版本中的任何应用程序,也不启动分发版
重点是我的
:”app@10.32.0.60“是需要启动分布式erlang的长名称
奇特的描述性“不属于网络”错误
上一页 1 2 ...
51 52 53 54 55 56 57 ...
下一页 最后一页 共 125 页