标签: Elixir
phoenix-frameworkecto
我想在Phoenix Framework中为模型设置默认值,我尝试过:
def new(conn, _params) do
user = get_session(conn, :user)
if is_nil user do
user = Repo.get_by(User, name: "guest")
conn = put_session(conn, :user, user)
end
changeset = Module.c
给定两个列表和第三个列表,其中的值映射到前两个列表的排列,我想创建一个list1的键、list2的键和list3的值的映射。如果我在循环中,如何在某个索引处获取list3的值
使用Enum.at不是解决这个问题的正确方法,我理解-它会在每次迭代中遍历整个列表。如果我尝试[head | tail]=list3,看起来我不能为下一个循环设置list3=tail
list1 = [1,2]
list2 = [3,4]
list3 = 'wxyz'
Enum.each(list1), fn i -&g
在中,客户端API使用:ok参数启动服务器
def start_link(opts \\ []) do
GenServer.start_link(__MODULE__, :ok, opts)
end
服务器的init函数要求其参数为:ok
def init(:ok) do
{:ok, HashDict.new}
end
传递和验证:ok有什么意义?如果我们忽略这一点,而是写一些类似的东西,会有什么不同吗
def start_link(opts \\ []) do
GenServe
标签: Elixir
phoenix-frameworkecto
我遇到了以下问题。我正在尝试将表单中变更集的一些日期绑定到隐藏字段。但我得到的只是隐藏字段,上面没有任何值
型号:
schema "events" do
field :name, :string
field :address, :string
field :location_x, :float
field :location_y, :float
field :date, Ecto.DateTime
field :description, :s
我正在尝试构建一个vagrant服务器,用于涉猎elixir和phoenix,但在安装了所有需求和依赖项之后,在运行mix phoenix.server时,我遇到以下错误:
错误:编译“web/static/js/app.js”失败。找不到相对于目录“web/static/js”的预设“es2015”
我不确定这里“预设”的上下文,我希望更有经验的phoenix用户会知道它的意思
一些粗略的谷歌给了我什么,除了它可能与巴贝尔有关
编辑:我刚刚尝试安装我认为丢失的软件包,sudo npm inst
标签: Elixir
phoenix-frameworkecto
我目前正在使用Phoenix 1.0并尝试为我的数据库设定种子。下面的链接指向我的种子文件
运行种子文件后,我得到了这个
** (TokenMissingError) priv/repo/seeds.exs:73: missing terminator: " (for string starting at line 67)
(elixir) lib/code.ex:363: Code.require_file/2
(mix) lib/mix/tasks/run.ex:68: Mix.Tasks
在Elixir中,我想对结构中是否存在字段进行模式匹配—如果字段不是nil,或者更好,如果字段是字符串
我知道模式如何匹配字段为零的结构。例如:
def run(%Query{expression: nil})
如何匹配给定字段为任意字符串的结构?您可以匹配:
Kernel.match?("" <> rest , "")
#true
有效的保护条款列表可在上找到,我已经更新了匹配和保护解决方案。哦,非常有趣。“如果用空字符串连接与原始值匹配,则必须是字符串”,对吗?
def ru
我正在尝试这样做,以便不必手动编写一系列test块:
test_cases = %{
"foo" => 1,
"bar" => 2,
"baz" => 3,
}
Enum.each(test_cases, fn({input, expected_output}) ->
test "for #{input}" do
assert(Mymodule.myfunction input) == expected_output
end
end)
但是
我试图编写一个变更集来更新模型并插入关联。我找不到关于如何使用的例子
这将打印出以下错误:
** (Ecto.InvalidChangesetError) could not perform update because changeset is invalid.
* Changeset changes
%{order_errors: [%Ecto.Changeset{action: :insert, changes: %{id: nil, inserted_at: nil, order_i
我有一个带有键值对的映射和一个带有原子的元组。我想从映射中删除键不是元组中原子的任何条目
m = %{value1: nil, value2: nil, value4: nil}
t = {:value1, :value3, :value4}
# The result should be %{value1: nil, value4: nil}
这是一个交叉问题。我查看了Enum.filter和MapSet,但没有找到一个优雅的解决方案。这一定是一个常见问题,我们非常感谢您的意见。使用和:
我认
用户有许多电子邮件,电子邮件有一个属性md5sum。对于给定的用户@user,我希望在user\show中显示图像
模板中的以下代码不起作用:
<img src="http://www.gravatar.com/avatar/<%= @user.emails.first.md5sum %>" />
web/models/user.ex
defmodule MyApp.User do
使用MyApp.Web,:model
使用Arc.exto.Model
模式“用户”做什
标签: Elixir
database-migrationphoenix-framework
我正在使用Elixir和Phoenix,我有一个表,我想在这个表中添加一个新字段,但我希望这个字段是唯一的。因为我的数据库在这个表中已经有一堆寄存器,所以我想用表中另一个字段的值填充新字段
例如,在表it's posts中,我添加了一个新的字段名,它将是uniqe,并且希望所有旧的寄存器用字段email中的值填充字段名
我该怎么做?在迁移过程中我会这样做吗?比如:
def change do
alter table(:posts) do
add :name, :string, nul
在elixir示例代码中,我看到包含接收块的函数被递归调用,似乎不在尾部位置。例如:
defado模块
def循环do
接收do
:ping->
IO.puts“收到:ping”
环#
IO.puts“收到:砰”
环#
循环#在您的示例中,只有对循环的最后一个调用是尾部递归的。不要在receive块中进行递归调用,只需让receive返回并使用尾部递归调用在已经存在的函数末尾循环即可
defmodule A do
def loop do
receive do
:ping
在长生不老药中执行一些交叉关注的方式是什么?假设我想检查用户是否已取消订阅电子邮件-是否可以在执行任何电子邮件发送功能之前取消订阅?在Elixir文档中找不到任何关于交错其他功能的内容…很像rails中的before_过滤器,但在独立的Elixir应用程序中。可能会发送多封电子邮件-通知、营销、交易等。是否添加每封未订阅的电子邮件?手动检查这些功能中的每一个都是非常必要的。在Elixir中有更好的方法吗?在Rails中,在过滤器之前使用,实际上会导致糟糕的设计。我知道这样编写代码比较容易,但过了
标签: Elixir
phoenix-frameworkecto
我正在尝试使用Repo.update更新数据库中的现有记录:
def subscribe_email(conn, %{"email-address"=>email_address, "shop"=>shop}) do
current_record = Repo.all(%Oauth.EmailAddress{email_address: email_address, active: false, shop: shop, verified: :true})
curr
标签: Elixir
phoenix-frameworkbrunchcowboy
在我的应用程序中,我创建了两个java脚本文件——“app.js”和“vendor.js”。这些文件是通过priv/static/js文件夹中的“早午餐构建”正确生成的。但当我用cowboy服务器运行我的应用程序时,有时文件被加载到浏览器中,有时我可以看到404,即我得到以下错误-
GET http://localhost:4000/js/vendor.js 404 (Not Found)
GET http://localhost:4000/js/app.js
这是我的早午餐配置:
expo
标签: Elixir
phoenix-frameworkecto
我想生成一个包含类型为的列的,如下所示:
...
users: [
%{
id: 1
},
%{
id: 2
}
]
...
使用任务。你能帮我个忙吗?看来你真正想要的是一段感情。对吗
如果是这样的话,您可能想看看Phoenix是如何做到这一点的。这在很大程度上取决于所使用的DB后端。对于PostgreSQL,只需使用json字段类型。这里是。谢谢你的链接,但我想知道是否有一种方法可以通过phoenix.gen任务生成它。我将编辑这个问题以澄清它。如果它是一个有
我想通过ajax/json创建一个部分更新方法。我的“更新”功能应该是什么样子
def update(conn, %{"a" => a, "b" => b, "c" => c} = params) do
# ....
end
也就是说,一次只需要这些参数中的一个。我怎样才能具体说明呢?或者应该这样做:
def update(conn, params) do
# ....
end
检查参数是否包含a、b或c?您可以使用模式匹配来定义所有可能性:
def upd
我目前正在从事一个使用长生不老药编写的phx/phoenix项目。我使用下面的命令创建了这个项目,并希望该项目成为一个API
mix phx.new kegcopr_api --app kegcopr_api --module KegCopRAPI --no-brunch
但是,我在创建项目时忘记指定--no html标志。是否可以将此项目转换为使用--no html标志?或者我需要创建一个全新的项目吗?如果您还没有开始使用应用程序,最简单的方法就是删除该项目并重新开始
如果您已经启动了它,您
我多次尝试创建.tar存档的目录。但我没有成功
创建.tar格式的示例代码。(与erlang一起)
但我的考试一直不及格
请帮助我创建存档文件(.tar)Erlang的erl\u tar。create/2需要一个字符列表作为第二个参数,但您传递了一个二进制文件列表。请尝试:
{:ok , filenames} = File.ls("/Users/shahryar/Desktop/test")
:ok = :erl_tar.create("test.tar", Enum.map(filenames
标签: Elixir
phoenix-frameworkbrunch
在迁移到Phoenix 1.3之后,我很难让早午餐构建VueJS组件
我已经生成了一个新项目
我已经使用NPM安装了vue早午餐集成:
(在此处找到):
我已经更新了brunch-config.js以构建类似的Vue组件(我尝试了到components.css的两种路径):
我在“资产/组件/我的应用程序.vue”中添加了一个组件
但是在构建项目之后,“components.css”不会出现在“priv/static/css/”中
我试过更新早午餐,运气不好
我错过了什么
有关更多上下文,请参阅
我试图将一些项目添加到列表中,但前提是条件为true。
我的函数实际上是在条件为false时存储空数据
hit_list = for {_mob, %{id: id}} <- get_mob_list(state.mobs) do
if condition do
id
end
end
您可以使用for这样做:
hit_list = for {_mob, %{id: id}} <- get_mob_list(state.mobs), condition do
id
我有两张地图列表:
list1 =
[
%{amount: 1, id: 112006},
%{amount: 1, id: 78798},
%{amount: 6, id: 92572},
%{amount: 1, id: 89750},
%{amount: 1, id: 81418},
%{amount: 3, id: 92062},
%{amount: 1, id: 82373},
%{amount: 1, id: 92856}...
]
及
列表1包含30000多个地
例如,当通过几个管道步骤对字符串进行变异,并希望将其添加为字符串变量插值时
"Hello-World"
|> String.downcase
|> String.slice(0..4)
|> String.to_atom("var_#{&1}")
而不是:
str =
"Hello-World"
|> String.downcase
|> String.slice(0..4)
String.to_atom("var_#{str}"
我在一个伞形应用程序中工作,该应用程序使用Poison对Json进行编码和解码。为了对我的ecto模型进行编码,我编写了以下实现:
def defimpl Poison.Encoder, for: Any do
def encode(%{__struct__: App.Models.Task} = struct, options) do
struct =
if struct.geom do
{lon, lat} = struct.geom.coordinates
我正在尝试在我的回购中对此表进行查询:
user_id | create_author | delete_author | update_author | read_author
----------------------------------------------------------------------
1 | true | false | false | true
在我的代码中,我将列的名称作为字符串获取(
标签: Elixir
phoenix-frameworkelixir-mix
我正在使用phoenix创建服务器并使用编辑器VSCode
当我启动服务器:mix phx.server并且我有代码更改,它不会重新编译,我必须关闭并再次运行
是否应该在可以自动重新编译的地方设置扩展或配置
文件dev.exs
config :jwtuser, Jwtuser.Endpoint,
http: [port: 5000],
debug_errors: true,
code_reloader: true,
check_origin: false,
watchers:
我在这个查询中动态预加载表
assoc_models = [:example]
from(
q in queryable,
preload: ^assoc_models
)
结果是:
#Ecto.Query<from j in TestModel.Join, preload: [[:example]]>
#exto.Query
assoc_模型中可以有任意数量的表
有一对额外的支架后预加
标签: Elixir
phoenix-frameworkecto
我已根据从客户端传入的参数列表创建了一个查询列表:
[
#查询,
#异位查询
]
但是,我需要遍历这个列表并组成一个查询,它是所有查询的总和。。
(下一个查询的输入是当前查询等)
有人能给我指出正确的方向吗。非常感谢
我知道我可以一个接一个地编写查询。但是我正在从客户端获取参数,并且有一个很长的字段列表(品牌、类型等),我不想对每个字段进行单独的查询。除非打开单个查询结构并检查其底层实现,否则不可能也不建议像这样在EXTO中加入查询。相反,您应该尝试将它们分解并使其可组合
EXTO使您能够非常
我正在实现一个GenServer,我很困惑
我知道handle\u cast是异步的,这意味着调用方没有等待回复,我们返回的元组如下:{:noreply,new\u state}
我注意到,我们也可以从handle\u call返回相同的元组。这是否意味着如果我有一个返回{:noreply,new\u state}的句柄调用,它不会返回任何东西,而是同步的?调用方的流程将等待GenServer.call命令,然后在handle\u call功能完成后继续?无论何时调用GenServer.call
标签: Elixir
phoenix-frameworkectoex-unitespec
我最近在Phoenix应用程序中编写了一些Exto迁移。
但是,我总是手动测试迁移
随着我们的迁移变得越来越复杂,并且需要更改实时系统上的数据,我真的希望在部署它们之前编写自动化测试
自动测试需要:
将数据库重置到迁移之前的某个点
运行比要测试的迁移更早的迁移
准备数据并将其插入数据库
运行迁移
验证结果是否符合预期
清理数据库以确保即将进行的测试不会与数据冲突
我们正在使用ExUnit和ESPE,但我还没有找到一种方法,在特定测试之前只应用一些迁移
有没有一种方法可以为异位迁移编写自动测试?只
标签: Elixir
phoenix-frameworkecto
我必须同时更新3个表。
一个页面有3个变更集
如果我为发布3个带有表单的chagnesets,我如何编写代码?
下面是三个表
---------
members
---------
id
name
----------------
member_details
----------------
member_id
address
phone_no
--------------
member_items
--------------
member_id
item_id
或者另一种
嗨,我使用不同的域名加载不同的数据集。我目前正在使用自定义插件根据主机名加载正确的域id。例如,在路由器前面的我的endpoint.ex中得到了这个:
plug WebApp.DomainCheck
socket "/live", Phoenix.LiveView.Socket, websocket: [connect_info: [session: @session_options]]
...
plug WebApp.Router
及
现在这适用于正常的视图,因为我在每个
我已遵照以下指示:
但当我尝试执行mix时,我看到以下错误:
╰─❯ mix --help
** (Mix) The task "deps.loadpaths" could not be found
及
如何修复它?您可能有不兼容的Erlang/Elixir版本
使用asdf安装可能是最可靠的方法
确保您阅读了Erlang asdf插件的“在asdf安装之前”部分。您可能有不兼容的Erlang/Elixir版本
使用asdf安装可能是最可靠的方法
确
标签: Elixir
phoenixphoenix-live-view
因此,我遵循本教程创建动态表单:
好的,这是我实际的输入帮助程序。ex:
defmodule Conts.InputHelpers do
@moduledoc """
Define <%= input f, :pass, type: :password_input %> syntax
to create dynamic form inputs
"""
use Phoenix.HTML
alias
我正在阅读长生不老药教程中关于西格尔的内容。
我希望定义sigil的语法使用“defsigil”,就像“defstruct”、“defprotocol”等一样。
但事实并非如此。
为什么? 符号只是调用特定方法的一种奇特方式。请看关于的部分。基本上,~x/things/options与sigil_x(things,options)相同。所以你可以写这样的东西:
defmodule Thing do
def sigil_u(string, _options) do
string |&g
我正在编写的Elixir库有两个自定义混合任务,一个用于将我的库作为其项目依赖项的用户,另一个用于仅在我的项目中使用
这里的问题是,在用户将我的任务添加为dep后,他们的项目中的两个混合任务都可用
我如何防止这种情况?我试图在我的Mix配置中避免使用包:[files:[etc]]中的任务,但在通过git将我的库指定为dep的测试项目中仍然可以使用该任务。目前Mix实际上并不直接支持私有任务。以下是几个选项:
在mix.exs中定义它(例如,作为别名),或者在tasks/my_task.exs和
您好,我有一个类似的模块:
Mix.Tasks.MyModule.Release.Deploy
当我运行mix help时,它显示如下:
my_module.release.deploy
我怎样才能把它改成
mymodule.release.deploy
我尝试使用:
但是没有成功。我错过了什么吗?的确。CamelCase被翻译成小写,两个大写字母之间带有下划线。如果你想要mymodule,你最好先写mymodule。的确如此。CamelCase被翻译成小写,两个大写字母之间带有下划线。如
我有一个嵌套的列表项
[["Bearer"], ["xxxyyyxxxx123"]] # parsed from "Bearer xxxyyyxxxx123"
我只需要得到“xxxyyxx123”的值
我现在正在这样做,但我不认为这是惯用的
token = Regex.scan(~r/^Bearer|\w+/, header_content)
|> List.flatten
|> List.last
保持相同的Regex.scan/2调用的惯用方
标签: Elixir
phoenix-frameworkphoenix-channels
在安装cassandra_ecto并启动服务器时,遇到以下错误:
** (Mix) Could not start application cqerl: could not find application file: cqerl.app
之后无法继续。我个人没有使用过cassandra_Exto库,但此错误通常意味着应用程序缺少依赖项。您的deps功能中是否列出了cqerl库
def deps do
[
{:cqerl, github: "matehat/cqerl", tag:
我有一个插件,负责从作为令牌的请求中获取cookie并验证它
我目前在设置我的测试以通过conn内部的cookie时遇到问题
setup do
token = "some string"
conn =
conn(:get, "/")
|> put_req_cookie("session_token", token)
%{conn: MyPlug.call(conn, [])}
end
test "user passes thr
有没有办法从elixir中的列表中选择地图的属性
map = %{
a: 1, b: 2, c: 3
}
do_something(map, [:a, :b]) = %{a: 1, b: 2}
您需要Map.take/2:
iex> Map.take(%{a: 1, b: 2, c: 3}, [:a, :b])
%{a: 1, b: 2}
你刚才在文件中看到了。谢谢!
我需要将模块属性作为函数参数传递,但是它不适用于我,并且会引发错误。这是我的密码:
defmodule Waiter do
@defaultInterval 1
@defaultTimeout 10
def wait(condition, timeout, interval) do
IO.puts "condition #{condition} timeout #{timeout} interval #{interval}"
end
def
我正在创建一个动态执行函数的任务。这个函数每次都不同,参数的数量也不同([1,“hi”,:a]),所以我使用的是内核.apply/2
defpcreate_任务(f,args)do
Task.async(fn->apply(f,args)end)
结束
但是我无法将其用于私有函数(使用defp声明):
create_task(&__模块&.my_private_fun/3,args)
如果您要传递的函数是在模块中使用defp定义的,那么您无法从外部调用它。但如果它在同一模块中,您仍然可以调用它
我正在按顺序计算字符串中出现的次数
def count(strand,nucleotide) do
Enum.count(String.graphemes(strand),&(&1==List.to_string([nucleotide])))
end
如果我将strand作为“AAA”传递,它可以正常工作,但如果我像“AAA”一样传递,即charlist,它将失败
给我
**(FunctionClauseError)String.Unicode.graphemes/1中没有
如何为mix项目生成文档?它如何做到这一点
使用Elixir mix项目的程序:
我通过mixnewgreeter命令生成一个项目
我在greeter.ex文件中添加了一块注释
我将依赖项添加到mix.exs文件中
我尝试通过mix docs
指挥部
混合帮助无法在可能选项列表中提供文档任务:
mix # Runs the default task (current: "mix run")
mix app.start # Starts al
在这种模式下,我有将近10万个文件
[“192.168.1.225_01_20190316070000734_TIMING.jpg”,
“192.168.1.225_01_20190316071000736_TIMING.jpg”,
“192.168.1.225_01_201903160720000736_TIMING.jpg”,
“Camera_1_615696208_20190318075200317_TIMING.jpg”,
“Camera_1_615696208_201903180820
我目前正在凤凰城制作一款跳棋游戏,它将击中一个功能性的障碍。错误由我在此处提供的游戏频道中的handle_in函数引发:
def handle_in("click", %{"click" => ll}, socket) do
IO.puts("whatever")
end
关于我们做错了什么有什么想法吗?下面是一个例子:
defmodule示例do
def run do
Demo.handle\u意外,foo,bar
终止
def手柄、地图、插座do
伊奥·普茨瓦特
终止
终止
如何正确下载位于静态文件夹下的文件
我知道使用html,你可以使用类似的东西,但在Elixir中它不起作用,而是下载了一个名为phoenix.png的文件,但该文件无法打开,浏览器显示失败-没有文件
我尝试过使用类似的东西,但仍然不起作用。我发现GET/image/phoenix.png(MyTestsWeb.Router)没有找到路由
这是我的git存储库,我在这里举了一个例子:
你能帮忙吗?看起来像是打字错误image/phoenix.png->/images/phoenix.png仍然无法
守则:
require Formulae.Combinators
def permutations(trains, train_stations)
when is_list(trains) and
is_list(train_stations) do
number_of_trains = length(trains)
Formulae.Combinators.permutations(train_stations, number_of_trains)
end
上一页 1 2 ...
73 74 75 76 77 78 79 ...
下一页 最后一页 共 125 页