我正在尝试使用Elixir中的WxErlang使拆分窗口正常工作
我基本上是在做与:wx.demo中的splitterWindow示例完全相同的事情,但是:wxSplitterWindow.SplitVertical函数返回false(不工作),我不知道wny
代码如下:
defmodule SplitWindow do
import Bitwise
import :wx_const # A custom Erlang module that imports wx constants
d
我搜索了长生不老药和凤凰城的文档,以及其他一些网站,比如《没有运气》。下面是它的外观:
defp update_positions(item_ids) do
item_ids = String.split(item_ids, ",")
|> Enum.map fn item_id -> String.to_integer(item_id) end
items = Repo.all(Item |> where([item], it
标签: Elixir
phoenix-frameworkecto
我在凤凰城建立了一个外星模型协会。一个组织有许多组织成员。在OrganizationMember控制器的编辑方法中,我试图创建一个SELECT元素,该元素将保存所有可供选择的组织。在编辑定义中,我有以下两行:
# organizations = Enum.to_list(from(o in Organization, order_by: o.name, select: [o.name, o.id]))
organizations = from(o in Organization, order_b
标签: Elixir
phoenix-frameworkecto
在各种Google搜索之后,我仍然为选择一个不在PostgreSQL默认公共模式下的表而挠头
然而,我确实尝试在模型定义中引用Postgres的模式,但运气不佳,通过查看日志,我明白了为什么会出现“引用”的问题
抛出:
ERROR | relation "nonpublicschema.sometable" does not exist
ERROR | SELECT u0."somefield" FROM "nonpublicschema.sometable" AS u0
我知道这不是一个bu
标签: Elixir
phoenix-frameworkecto
Phoenix框架1.0.2
我有一个user\u post\u path(),因为我正在创建用户有很多帖子
在我的岗位上,我做:
def show(conn, %{"id" => id, "user_id" => user_id}) do
post = Post |> Repo.get!(id)
user = User |> Repo.get!(user_id)
render(conn, :index, post: post, user: us
标签: Elixir
phoenix-frameworkecto
我有下一个型号
defmodule App.User do
use App.Web, :model
alias App.User
schema "users" do
field :name, :string
has_many :roles_users, App.RolesUser
has_many :roles, through: [:roles_users, :role]
timestamps
end
end
defmodule App
在Elixir中是否有内置的数据类型可用于FIFO队列
我已经看过这个列表了,但是看起来要得到这个列表的尾部是没有效率的?也许我错了
我的队列需要容纳100000个或更多元素。
我需要的是每秒生成44100个元组,格式为{t,y}的音频。我正在尝试实现延迟,因此在将音频发送到处理管道之前,我需要排队等待几秒钟(最多10秒)。我不确定100000或更多元素的性能,但它看起来像是您在寻找的。它是由Erlang/OTP提供的FIFO队列
例如:
iex(39)> queue = :queue.n
我试图在for each循环中设置用户模型的一些属性,但我不断得到以下错误
无法在匹配内调用远程函数x.token/0
(elixir)src/elixir_fn.erl:9:anonymous fn/3 in:elixir_fn.translate/3
(stdlib)lists.erl:1353::lists.mapfoldl/3
(elixir)src/elixir_fn.erl:14::elixir_fn.translate/3
方法:
Enum.each(users, fn(user)
我正在尝试在Phoenix框架项目中实现jwt
我有一个user_controller.ex模块,具有以下功能:索引、创建、显示、更新和删除
我只想确保用户在更新和删除时经过身份验证
如果我将plug Guardian.plug.EnsureAuthenticated、handler:SessionController放在模块顶部,则所有函数都需要验证
我试着这样做:
plug Guardian.plug.EnsureAuthenticated,%{on_failure:{SessionCont
我只是试图从编程Elixir 1.0中运行一个示例Elixir程序,并得到以下错误,尽管这样做似乎不应该:
我做错了什么
我执行iex-S混合并查看错误报告:
Erlang/OTP18[erts-7.2][source][64位][smp:8:8][async threads:10][hipe][kernel poll:false]
=INFO REPORT==== 2-Apr-2016::20:11:46 ===
application: logger
exited: stop
这看起来很简单,但我似乎在文档中找不到它。如果列表或元组中存在项,我只需返回true或false。Enum.find/3真的是最好的方法吗
Enum.find(["foo", "bar"], &(&1 == "foo")) != nil
你可以用
对于元组,首先要使用
根据这里的答案和Elixir Slack中的答案,有多种方法可以检查列表中是否存在项目。
根据@Gazler的回答:
Enum.member?(["foo", "bar"], "foo")
# true
或者干
我正在阅读《长生不老药在行动》一书,我有点困惑下面的例子是如何工作的
defmodule NaturalNums do
def print(1), do: IO.puts(1)
def print(n) do
print(n - 1)
IO.puts(n)
end
end
给出此输出:
iex(2)> NaturalNums.print(3)
1
2
3
我感到困惑的是,这个模块如何从1开始向上计数,而不是从3开始向下计数。不应该先打印3,然后再打印2,然
有什么方法可以使模式匹配httpoison的错误响应吗?我是这么做的
case HTTPoison.get!(url, [], []) do
%HTTPoison.Error{reason: reason} ->
IO.inspect "Media: #{reason}!"
:timer.sleep(:timer.seconds(3))
do_loop(starting, ending, interval, camera_exid)
response -&g
假设我们有一个需要配置的模块a。当我们使用A时,可以将[applications:[:A]]放在mix.exs中,并将config:A、[]放在项目的config/config.exs中
但是,当我们是模块A的开发人员时,如何/何时在A目录中的mix test命令上配置:A?我们可以在test/test\u helpers.exs或其他地方这样做吗?您可能希望从中派生行为。它的作用基本上是在config目录中添加三个文件,分别名为dev.exs、prod.exs和test.exs,以及confi
我在API中有以下使用Phoenix的控制器
defmodule TattooBackend.Web.API.V1.StudioController do
use TattooBackend.Web, :controller
alias TattooBackend.Accounts.Studio
def show(conn, %{"id" => id}) do
studio = Repo.get!(Studio, id)
render conn, stud
我有message=%{“to”=>“testuser”,“value”=>“asdads”}map。我需要访问此地图中“to”键的值
message.to
message[:to]
Map.fetch!(message, to)
到目前为止什么都没用
这是控制台错误消息
[error] GenServer #PID<0.395.0> terminating
** (KeyError) key :to not found in: %{"to" => "testuser", "
我正在向表单中添加更多字段:
我把它们添加到post.ex
field :name_of_gallery, :string
field :future_plans_title, :string
将它们添加到stories.ex中的变更集:
defp post_changeset(%Post{} = post, attrs \\ %{}) do
post
|> cast(attrs, [:title, :body, :user_id, :published
我正在考虑为我的下一个项目试用长生不老药。我一直在使用PostgreSQL和Python中的SQLAlchemy进行工作,并获得了一个自动生成工具的回报,该工具可以直接从数据库生成模型代码。在Elixir/Ecto中是否有一个等价物?您可以尝试查看此库,但我没有亲自使用它,因为我总是依赖于令人敬畏的Phoenix generator命令。非常感谢这两个提示(我假设Phoenix generator命令是以下:?)是的,这是一个,它只生成模型文件。Phoenix还提供了一种非常快速的方法来生成从迁
标签: Elixir
phoenix-frameworkecto
我有Xyz,它要么有国家id,要么有联邦州id,要么有城市id。但其中只有一个(不是全部三个,也不是两个)。我如何对此进行验证?另外,我如何才能仅对该字段执行关联约束/1
defmodule Example.Location.Xyz do
use Ecto.Schema
import Ecto.Changeset
alias Example.Location.Xyz
schema "xyzs" do
field :name, :string
belongs_to
此代码终止,因为GenServer中{:handletick,…}调用处理程序上的“进程试图调用自身”:
defmodule PeriodicSaver do
@moduledoc """
Functions for periodically saving streaming data, with minute resolutions,
into the database
"""
use GenServer
use Timex
def start_link()
在JS中,我可以这样做:
function countIt(str){
let obj = {};
for(let i = 0; i < str.length; i++){
if(!obj[str[i]]){
obj[str[i]] = 1;
} else {
obj[str[i]]++;
}
}
return obj;
}
console.log(countIt("hello"));
//returns
在这里,我们可以通过以下方式使用hmac进行编码:
:sha256
|> :crypto.hmac("key444", "The quick brown fox jumps over the lazy dog")
|> Base.encode16
但我们如何解码是再次验证数据。要验证的可能重复,只需将新字符串传递给相同的代码并比较结果即可?
标签: Elixir
phoenix-frameworkecto
我正在尝试将has\u many关联预加载到传入的结构,以及传入的结构关联的has\u many关联
以下是我目前正在处理的问题:
project =
Repo.get!(Project, id)
|> Repo.preload([rows: {query, [images: from i in Image, order_by: i.index]}])
但这将返回以下错误:
This error may happen when you forget a comma in a list
我的问题是仅显示用户授权使用的模板部分。
假设有一个项目,其中只有用户和用户角色,以及phx.gen.html生成的模板和控制器。设置路由/用户我们得到一个很好的表,其中包含所有用户数据和用于显示、编辑和删除的按钮
用户角色可能只是普通用户和管理员。现在我希望管理员能够删除和编辑所有用户,但用户应该只能编辑自己和我的问题是什么,他应该只看到他的条目按钮
我已经为各自的操作设置了一些插件,所以普通用户不能编辑、删除甚至显示其他用户,但他甚至不应该知道这样做的选项。所以,我想隐藏那些按钮。以下是我遇
如何求长生不老药中数字的平方根?似乎没有Math模块或任何东西,也没有类似sqrt()的函数。找到了。你可以这样取平方根:
:math.sqrt(x)
Elixir编译成BEAM,这使得它与Erlang模块兼容。正如您所说,:math.sqrt(x)基本上运行的是Erlang代码。您的提问是对的,因为Erlang在什么时候真正重新承担起“长生不老药”的责任从来都不明显。
我有一个启动应用程序的依赖项,但我只想使用它的模块,不想让它的主管运行。如何将其从启动中排除
我在mans for app.start、run或Mix.Projectmodule中没有找到与此相关的任何内容,只是在Mix help deps
:app-设置为false时,不读取此应用程序的应用程序文件
附属国。默认情况下,将读取应用程序文件
:runtime-依赖项是否是运行时应用程序的一部分。
默认值为true,将自动将应用程序添加到
自动启动并包含在发行版中的应用程序
这两种方法都适用于
我正在尝试使用
image\u test.png位于名为“practice”的项目文件夹根目录下的文件夹“media”中
但是我得到错误,找不到GET/media/image\u test.png的路由
以下是我的文件内容:
practice/media/image_test.png
形象
practice/lib/practice\u web/templage/index.html.eex
很明显,图像路径不正确
你能帮忙吗?“>
<img src="<%= static_pat
标签: Elixir
phoenix-frameworkgigalixir
当我尝试使用gigalixir部署时,我遇到了这个错误。我不知道为什么使用长生不老药这么难
-----> Checking Erlang and Elixir versions
Will use the following versions:
* Stack cedar-14
* Erlang 21.0
remote: Elixir 1.9.1
-----> Using cached Erlang 21.0
-----> Instal
我有一种奇怪的行为,让我发疯!
我有以下插件,用于检查API客户端是否在x-API-key头中实际提供了正确的API密钥:
将插头插入路由器的插头链中:
plug Plug.Logger, log: :info
plug APIKeyAuthPlug,
auth: Application.fetch_env(:probe_server, APIServer.APIKeyAuthPlug)
plug(:match)
plug(:dispatch)
正确的密钥本身被定义为
我正在使用,它在大多数情况下都非常有效。但是,我遇到了以下错误:
长生不老药
(ErlangError)erlang错误:{:未定义的_函数,{OAuth2.Strategy.AuthCode,:new,2}
我发现:new是在OAuth2.Strategy的\uuuu中定义的一个函数,使用的是宏。这意味着:未定义新的OAuth2.Strategy.AuthCode。我如何模拟:在这种情况下新建?Meck在运行时创建模拟,因此它永远无法在Elixir中模拟宏。如果您的宏最终创建了一个函数,然后
我想给我的表格上一节课。翻阅这些文档,似乎没有办法做到这一点,而且你只能输入像这样的名称
form\u用于@changeset、@action、[name::search],fn f->%>
是否有任何方法将类作为选项传入,以便我的表单html元素可以有一个类?也许是这样
form_表示@changeset、@action、[class:'form horizontal',fn f->
我在翻阅phoenix的源代码,但似乎找不到任何内容。它被破坏了,因为我在'form-horizontal'中
我最近遇到了一个代码片段,例如:
def loop(ring_pid \\ self, nil, true) do
#some code
end
双反斜杠是什么意思?我搜索了一下发现,但这适用于正则表达式而不是函数参数。\用于定义默认参数
您可以通过在iex控制台中尝试观察该行为,例如:
defmodule Foo do
def bar(x \\ 1, y) do
x * y
end
end
Foo.bar(2,3) # => 6
Foo.bar(3) # =&g
标签: Elixir
phoenix-frameworkecto
当您需要更新计数器缓存时,比如说,在Ecto 1.0中,您会使用回调
在EXTO 1.1中,您必须使用EXTO.Changeset.prepare_changes/2
您是否将准备更改直接放在MyApp.MyModel.changeset或MyApp.MyController.update中?JoséValim的回答:通常放在模型中
见此相关报道
请注意,在调用prepare_changes时,回购在变更集中可用。JoséValim的回答:通常在模型中
见此相关报道
请注意,在调用prepare
错误:
1) test does not create resource and renders errors when data is invalid (Potion.CommentControllerTest)
test/controllers/comment_controller_test.exs:25
** (ArgumentError) assign @num_approved_comments not available in eex template.
注
是否可以在提示中添加颜色和其他效果?iex是否有资源文件(如Ruby的)?是否有一个定制API允许即时定制(比如Ruby)?是的,是的,是的
要自定义提示,您需要做以下几件事:
主目录中的.iex.exs文件。如果此文件不存在,请创建它。它将在启动时执行
[可选]调用以启用ANSI。如果您的平台(如Windows 10)上的iex未检测到ANSI支持,则可能需要此选项
调用以启用颜色并设置提示
以更正光标位置。否则,使用上/下箭头循环浏览命令历史记录会将光标向右移动更远。当前未公开所有光标移动
标签: Elixir
phoenix-frameworkecto
如何在includedMyApp.MyUniversalModule中获取调用者模块,并通过field\u name参数获取
defmodule MyApp.MyUniversalModule do
def gen_and_check_unique(changeset, field_name) do
token = random_string()
# MyApp.MyQueryableModule |> Repo.get_by(field_name, token)
我正在使用Guardian和Ueberauth进行身份验证,但发生了一些奇怪的事情Guardian.Plug.authenticated?(conn)返回true但Guardian.Plut.current\u资源(conn)返回false。我还使用了Guardian.Phoenix.Controller和当前用户为nil,但是Guardian.Plug.EnsureAuthenticated允许我访问。发生这种情况是因为我在Guardian配置中缺少hooks:GuardianDb 您可以发布
标签: Elixir
file-conversionex-unit
我正在开发一个小的escript应用程序,它可以将电子书格式(.pdf,.epub)转换为.mobi格式,以便在Kindle上使用,我想知道(使用ExUnit)如何在不实际运行代码并生成新转换文件的情况下测试转换是否成功
现在,脚本只是循环遍历目录的内容,并通过调用包将适当的文件转换为.mobi,尽管稍后我想自己进行转换。您是否只想测试命令是否使用正确的参数调用?因为您自己还没有实现实际的转换逻辑,所以没有理由进行测试。我几乎会采取假设转换成功的方法,只是验证您是否获得了正确的输入,并在获得文件
我有以下代码:
{drop_off_lat, _ } = case student_model.drop_off_lat do
nil -> {0.0, 0}
value -> {Float.parse(value), 0}
end
{drop_off_lng, _ } = case student_model.drop_off_lng do
nil
我所拥有的:
%{1 => #MapSet<[123, 234, 345, 456, 567]>,
2 => #MapSet<[345, 456, 567, 678, 789]>}
您可以在此处使用嵌套的Enum.reduce/3:
map = %{1 => MapSet.new([123, 234, 345, 456, 567]),
2 => MapSet.new([345, 456, 567, 678, 789])}
E
我遵循类似的方法,添加一个字段并在迁移中填充它
def up do
alter table(:posts) do
add :urltitle, :string
end
flush()
Repo.all(Post)
|> Enum.map(fn p ->
urltitle =
p.title
|> String.downcase
|> Enum.map(fn c ->
标签: Elixir
phoenix-frameworkmsgpack
凤凰城1.3
Elixir 1.5.2使用Erlang 20编译
我有一个Android移动应用程序,它通过HTTP服务器发送和接收MsgPack。现在,我们计划为某些部分集成Phoenix框架。但在Phoenix框架上,发送二进制文件(特别是MsgPack)很麻烦
如何使用定制(反)序列化程序,如Phoenix中的MsgPack
如果有任何关联:
1.使用MsgPax库
2.在stoiximan.gr上,我曾经这样做过,而且效果很好。首先将其添加到mix.exs文件中
接下来,要使用自定义序列
如果定义typespec并使用其他类型的参数,则会显示类似以下内容的错误:
binary() ... breaks the contract ... boolean()
例如,此类型规范:
@spec check?(binary) :: boolean
@spec check?([String.t]) :: boolean
但它似乎不适用于类型化列表,或者至少它永远不会显示警告,如果我有一个方法接收字符串列表,我将定义这个类型规范:
@spec check?(binary) :: bool
我已经实现了一个GenServer,它通过长轮询监听外部消息队列。为此,我在启动应用程序时启动GenServer,即在我的应用程序的start/2功能中。ex文件中,我在管理器列表中指定了一个额外的子项:
children = [
supervisor(MyApp.Repo []),
supervisor(MyAppWeb.Endpoint, []),
supervisor(MyApp.MessageQueueGenServer, [])
]
然后,此列表从以下内容开始
我对长生不老药还不太熟悉,我试着用这种模式匹配,但似乎做不好
我有一个解码的变量,其值为
{:好的,
%{
“_id”=>“5b162c483d1f3152b7771a18”,
“exp”=>1529286068,
“iat”=>1528422068,
“密码”=>“$2a$10$hlTl8vV0ENjpRxI1tRVAi.Woxx.na36K/lbZm7FrqLoXfzyoVzFia”
}}模式匹配与条件运算符没有任何关系,更重要的是,它主要用于避免使用条件运算符,我们中的一些人认为条件运算
标签: Elixir
phoenix-frameworkecto
我刚刚开始使用长生不老药/凤凰和星外迁移。我找不到使用迁移创建Postgres数据库模式的方法。在不久的将来,我的数据库将需要多达4种不同的模式。我的意思是这样做,但是创建一个模式而不是一个表。我不确定能不能做到,但如果能,怎么做?谢谢
def change do
create table(:people) do
...
end
end
这个函数就是你想要的。您可以使用它执行任意SQL命令,如创建用户、模式或向数据库添加扩展
defmodule Exampl
我正在写文档,看起来很不错,但我有个问题。当一个函数有一个映射作为参数时,它在文档中被写为“映射”。我想将其显示为“params”
例子
def登录(conn,%%{“email”=>email,“password”=>password})做什么
...
结束
…在文档中显示为:
登录(连接,映射)
我知道我可以将我的函数编写为:
def登录(conn,%%{“email”=>email,“password”=>password}=params)do
...
结束
…获得:
登录(连接,参
我有以下关系在我的项目A有很多B和C有很多B,所以B是在表之间
在为表A中的记录呈现Phoenix.Form时,我希望编辑表B中的记录,但我希望它们按表C中记录的数据分组
目前它的渲染方式如下:
<%= inputs_for @d |> IO.inspect(), :record_a, fn f -> %>
<div id="date">
<div class="form-group row">
#magic
&
标签: Elixir
associationsectopolymorphic-associations
在对“属于/有一个协会”的解释中,作者写道:
假设一部电影有一个发行商,例如Netflix是
发行他们的原创电影《光明》
…分发服务器架构应使用BELLENS_to/3宏来允许
让我们打电话给distributor.movie并查找与分销商相关的
使用此外键的电影
has_one/3宏的功能与has_many/3宏相同。它使用
关联架构的外键,用于查找和公开电影的
经销商。这将允许我们呼叫movie.distributor
以下是其示例的模式:
defmodule示例。分发服务器do
使用e
我有两个genserver,每个genserver都需要处理相同的消息。如果它们不同步,一些消息就会丢失
例如:
def handle_info(%Foo{},state)do
结束
def handle_info(%Bar{},state)do
结束
有没有一种好方法可以强制这两个模块处理这些特定消息?如果要求更改(例如,%Bar{}为%Baz{}),如果我不同时更新两者,我将失败
(目前正在尝试@callback,但“发现的冲突行为”正在将我推开)将网关GenServer放在他们前面,然
上一页 1 2 ...
15 16 17 18 19 20 21 ...
下一页 最后一页 共 125 页