标签: Elixir
phoenix-frameworkecto
我不明白为什么我的查询看起来运行正常,但是当我查看数据库时,我找不到这样的记录-我的循环总共插入了37条记录-而且它们实际上都不在数据库中
我知道我正在连接数据库,因为我可以在Phoenix应用程序的其他页面上查询数据
有人有什么想法我可以调查吗
混合phx.server输出:
begin []
[debug] QUERY OK db=0.2ms
INSERT INTO `activities` (`days_coding`,`days_done`,`days_merged`,`days_pen
Ruby有开放类,非常方便(尽管有些人对其嗤之以鼻),Elixir大量借用Ruby,因此我希望Elixir允许我在关闭模块后重新打开模块并向其添加宏,但这并没有像我尝试的那样起作用。有没有办法做到这一点?这个功能在Elixir中可用吗
为了使这一点具体化,让我们以Chris McCord的元编程长生不老药为例:
defmodule Math do
defmacro say({:+, _, [lhs, rhs]}) do
quote do
lhs = unquote(lh
我在Phoenix中使用默认的json工具,但由于某些原因,我无法返回任何日期(字段类型:date)。我得到这样的东西:
unable to encode value: {2015, 3, 24}
我正在使用postgres数据库,数据库中的字段类型为date。我错过什么了吗?在我用毒药编码日期之前,是否需要构建一个解析日期的函数?您的“日期对象”只是一个长生不老药元组。Posion不知道如何编码Elixir元组:
iex(1)> Poison.encode({2015, 3, 24})
我正在做一个简单的手术
rem(-1, 25)
我希望这是整数除法的提醒,返回24(与Ruby中的相同),但它返回-1。
我做错什么了吗?elixir上的行为被破坏了吗?根据编程语言,剩余部分的符号实际上会改变:。因此,两者都是正确的,也都是错误的 红宝石:
irb > -1.remainder(25)
=> -1
长生不老药:
iex(6)> rem(-1,25)
-1
它们的工作原理相同
但我想你指的是Ruby的模:
irb > -1.modulo(25)
标签: Elixir
phoenix-frameworkecto
我(一个noob)正在玩弄Phoenix框架以获得乐趣,并构建了一个小型twitter克隆。如果一切正常,我想在字段(升序)按updated_排序推文。正如您从tweet_controller中看到的,我尝试过使用order_by子句,但这对我没有任何帮助
问题
我如何做到这一点?在EEx内还是在tweet_控制器本身内
tweet/index.html.eex
<div class="row">
<%= for tweet <- @tweets do %>
标签: Elixir
phoenix-frameworkbrunch
当我第一次在生产中部署Phoenix应用程序时,我发现我的CSS由于应用程序而被破坏。CSS生成的文件包括不需要的CSS,如引导和HTML5样板。
我想在生产模式下编译时,它们会包含在早午餐中。
如何避免呢
PS:当使用SSH将本地文件发送到远程服务器时,请参阅我对Dmitry answer的评论。您可以删除web/static/css/app.css文件中的所有内容。然后重新编译你的项目@谢谢你,德米特里。这是一个愚蠢的问题,因为我已经这样做了,但现在我发现了问题:我使用的命令将文件从本地计算
我有这个密码
reg=~r/(\d{4}.csv)/
raw="some craxy trashy text blabla 0044.csv"
Regex.scan(reg,raw, capture: :all_but_first)
这将返回0044.csv
但是,我需要从数据库加载~r/(\d{4}.csv)/,因此我将它另存为
"~r/(\d{4}.csv)/"
这是一根绳子。当我将它加载到变量时,它将是一个字符串
如何将其传递给Regex.scan?您可以使用或Regex.compil
标签: Elixir
phoenix-frameworkecto
我目前正在从事一个Phoenix项目,我对模板中调用字段的方式不满意
架构当前正在运行
defmodule MyApp.Car do
use MyApp.Web, :model
schema "car" do
field :columnName, :string
end
end
car=Repo.get!(汽车,身份证)
我希望能用电话查询结果
car.column\u name
而不是
car.columnName
由于许多应用程序都在使用数据库,迁移数据库目前不是一个选
我有以下代码:
parent = self()
spawn_link(fn ->
send(parent, "foo")
send(parent, "bar")
end)
receive do
x -> IO.puts x
end
当我运行这个脚本时,会打印“foo”,但不会打印“bar”。我是否遗漏了一些关于长生不老药过程的基本信息?Onereceive表达式只处理一条消息。通常的处理方法是将receive表达式放入函数中,在处理完消息后,使其再次递归调用自身
如何在Elixir中指定正在编译的当前文件?在Ruby中,我可以使用\uuu文件\uuu变量。长生不老药中有等效物吗
这是我的剧本:
IO.puts “#{__FILE__}”
以下是输出:
** (CompileError) ModulesAndFunctions-7.exs:3: undefined function __FILE__/0
(elixir) expanding macro: Kernel.to_string/1
ModulesAndFunctions-7.e
我的代码:
defmodule Model1 do
use Ecto.Schema
import Ecto.Query
schema "model1" do
belongs_to :model2, Model2
end
def create_query do
Model1
|> join(:inner, [m1], m2 in assoc(m1, :model2))
end
def apply_where(query, %{name
当我使用IEx并输入一个类似于附加括号或“”的拼写错误时,大多数时候我都会遇到语法错误。但也有类似的情况:
iex(3)> Enum.each '12345', &(IO.puts(&1"))
...(3)> end
...(3)> )
...(3)> '
...(3)> end
...(3)> ""
...(3)> ... ? How to produce syntax error ?
是否可以将范围传递给Elixir的Enum.filter。例如
这很有效
[1,2,3,4,5] |> Enum.filter(&rem(&1,2)==0) #=> [2,4]
但事实并非如此
[1..10] |> Enum.filter(&rem(&1,2)==0) #=> bad argument in arithmetic...
我有一个列表,其中包含我希望传递给筛选器的范围。例如
[1..10, 2, 3]
您不需要将其包装在
标签: Elixir
phoenix-frameworkminio
我正试着和你一起使用图书馆。
我尝试上载文件:
filepath
|> S3.Upload.stream_file
|> S3.upload(bucket_name, path)
|> ExAws.request!
我得到一个错误:
[error] #PID<0.1041.0> running Myapp.Endpoint terminated
Server: localhost:4000 (http)
Request: POST /resources/uploa
标签: Elixir
phoenix-frameworkphoenix-channels
在我的项目中,我使用了Phoenix频道来分发颜色,我一直收到这样的错误:
[debug] Duplicate channel join for topic "colors:*" in EveryColor.ColorSocket. Closing existing channel for new join
如何复制:
进行安装和生成(&M)
mix phoenix.server
加载网页一次,一切正常
“重新加载”和“新建颜色”按钮停止工作,控制台中出现上述消息
代码:
后端
defmodu
标签: Elixir
phoenix-frameworkecto
但当我在测试中这样做时:
defmodule ParrotApi.Meetup do
schema "meetups" do
field :timestamp, :integer
belongs_to :topic, ParrotApi.Topic
timestamps()
end
@required_fields ~w(timestamp)
def changeset(struct, params \\ %{}) d
标签: Elixir
phoenix-frameworkelixir-mix
我目前正在尝试编写一个混合任务,在一个phoenix(v1.3)项目中自动搭建一个Elm应用程序。它将生成所有要添加的elm文件/js脚本,并正确安装节点和elm模块。我还生成了一个elm_view.ex和elm_controller.ex,它使用当前otp_应用程序的名称,并正确输出文件,如下所示:
defmodule PipeDream.Web.ElmController do
use PipeDream.Web, :controller
def index(conn, _para
我在一个伞形应用程序中有两个应用程序:cap和ed
如果使用iex,我可以成功调用第一个函数中的函数:
c:\code\a_umbrella_app\apps\cap>iex -S mix
...
iex(1)>Cap.Handler.get_price()
"128.462"
但当我尝试从我的其他应用程序调用它时,它会给出一个错误
c:\code\a_umbrella_app\apps\ed>iex -S mix
...
iex(1)> Ed.Usecap.abc(:
标签: Elixir
phoenix-frameworkecto
我刚刚发现,在创建插入的和更新的时,在EXTO上有一个有趣的行为
午夜过后,我的应用程序表现正常。。但过了午夜,它的行为就像下面的日志
[info] >>> RUNTIME DATETIME {{2017, 7, 4}, {2, 38, 43}}
[info] >>> CHAT NEW = %Portal.DailyChat{__meta__:
#Ecto.Schema.Metadata<:loaded, "daily_chats">, id:
我遵循这个长生不老药的例子
我试图在文档中找到~w做了什么,但找不到
ExUnit.start
defmodule ListTest do
use ExUnit.Case
def sample do
["Tim", "Jen", "Mac", "Kai"]
end
test "sigil" do
assert sample == ~w(Tim Jen Mac Kai)
end
end
那么~w(Tim Jen Mac Kai)在这个测试中做了什么?这
我可以定义与模块共享的常数吗
通常,我们对模块内的常量使用模块属性。
如果我想使常数对其他模块可用,我该如何做?
首先,模块属性仅在模块(1)内部可用。
我知道我可以将函数用作常数(2)。
但如果可能的话,我想用3这样的专用形式定义常量
defmodule Sample do
# 1. module attribute(available only inside module)
@private_const_value 1
# 2. function as consta
我有这个收藏
collection = [%{"id" => 1, "items" => ["test1", "test2"]},
%{"id" => 2, "items" => ["test3", "test4"]}]
如何拥有项目“test3”我可以获得映射%{“id”=>2,“items”=>[“test3”,“test4”]}]
如何做到功能性风格?如果未找到,则返回nil
Enum.each(collection, fn(eleme
标签: Elixir
phoenix-frameworkabsinthe
我在苦艾酒中使用内置的GraphiQL接口。详情如下:
pipeline :browser do
plug RemoteIp, headers: ~w[x-forwarded-for], proxies: ~w[]
plug :accepts, ["html", "json"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_br
标签: Elixir
phoenix-frameworkectotimex
保存到数据库后,我通过电子邮件发送验证链接。我希望链接有一个超时,也就是说,在一定的持续时间后它将被呈现为无效。如何使用Timex实现这一点?我不想使用其他身份验证包,如Coherence。您可能根本不需要Timex,现在假设您的DB使用的是naive时区,您可以使用
# Assuming the link will expire in an hour (3600 seconds)
valid_till = NaiveDateTime.add(NaiveDateTime.utc_now(), 3
我有一个包含两个字段的模式,a和b,我希望正好需要其中一个字段。也就是说,如果提供了a,则不应提供b,反之亦然
有没有一种方法可以优雅地用EXTO变更集验证来表示这一点?大概是这样的:
schema "foo" do
field(:a, :string)
field(:b, :string)
field(:c, :string)
timestamps()
end
def changeset(transaction, attrs) do
transaction
|>
以下是参数:
%{
"$select" => %{
"$avg" => ["arrive_at"],
"$count" => ["arrive_at"],
"$fields" => ["id"],
"$max" => ["cost"],
"$min" => ["arrive_at"],
"$sum" => ["arrive_at"]
}
}
代码如下:
select when is_map(
我正在使用Comeonin.Bcrypt进行密码加密。注册帐户时工作正常,我可以成功登录。但是,一旦我重置了密码,checkpw方法对于新密码和旧密码总是返回false。我正在使用下面的方法生成密码哈希
defp put_pass_digest(changeset) do
case changeset do
%Ecto.Changeset{valid?: true, changes: %{password: raw_passwd}} = cs ->
我需要使用datetime选择器从前端获取日期和时间信息。所以在我的控制器里
def show(conn, %{"date" => date, "time" => time}) do
# date value will be "2018-09-29"
# time value will be "12:00"
end
在functino中,如何正确地以这样的原始datetime格式构建datetime
~N[2018-09-29 12:00:00]
您拥有的格式几乎与ISO 86
Elixir中的内核模块提供了很多功能,默认情况下,可以在任何地方导入,而不需要前缀Kernel。但是,其中许多函数只作用于特定的数据类型
对我来说最突出的是那些在列表上操作的,比如,hd/1和tl/1。Elixir已经有了,那么为什么列表模块(即List.length/1)中没有包含这些函数呢
我知道对于常用的函数来说,它更短、更方便,但是如果使用别名在List这样的模块中复制功能,会不会更好?考虑到这些函数是以宏的形式实现的,并且是由编译器内联的,是否存在语言约定或技术限制会使这一点变得困难
标签: Elixir
phoenix-frameworkphoenix
我正在为elixir/phoenix框架做一个项目。有一个关于授权的问题。例如,我有一条路线:
get "/dashboard", DashboardController, :index
我只希望登录的用户能够通过此路径。当我介绍这个过程时:用户沿着这条路线走,它检查用户是否登录。如果是,则调用处理此路由的控制器函数;如果不是,则重定向到登录页面。请告诉我,如何在phoenix框架中正确实现这一点?可能有许多类似的路由,我希望有一个处理程序用于此。我正在使用它进行身份验证。我有以下管道:
p
我正在尝试从Supervisor升级到DynamicSupervisor
我有一个简单的主管
use Supervisor
alias EvercamMedia.Snapshot.Worker
def start_link() do
Supervisor.start_link(__MODULE__, :ok, name: __MODULE__)
end
def init(:ok) do
children = [worker(Worker, [], rest
我是一名初学者,正在使用旧数据库,其中像Ę、ę、Ń、ń这样的字符像一样保存;;;ca…这是一种使用Phoenix框架的Elixir语言。
我想在代码中替换多个字符,我有一个函数:
def convert_content(content) do
content = String.replace(content, ";;;ca", "Ę")
content = String.replace(content, ";;;ea", "ę")
content = String.r
标签: Elixir
phoenix-frameworkdistilleryedeliver
我正在研究几个不同的How-Tos(项目中的主要部分加上几个通过Google搜索的部分),以便edeliver部署代码,但我找不到解决此问题的方法无法调用任务“distillery.release”:发现1个错误问题:
$mix生成版本
在构建主机上构建HELLO_WORLD应用程序的发布
----->授权主机
----->确保主机准备好接受git推送
----->使用git将新提交推送到:abc@company.com
----->将远程主机重置为b8a7e8d2098b228f693352a
标签: Elixir
phoenix-frameworkphoenix-live-view
我有一个LiveView应用程序,可以搜索机场代码。当用户输入ham时,它应该将表单字段的内容替换为ham(String.upcase/1),但它不会。但根据我对代码的理解,应该是这样的。要用升级版本替换该字段中的所有输入,我必须更改什么
顺便说一句:如果我添加了一个按钮,并使用phx submit而不是phx change,它就会工作。但是我想让它为phx change工作
安装程序
lib/travelagent\u web/router.ex
[...]
scope "/", Trave
假设您想对两个列表进行异或运算
列表1=[0,1,0,1]
列表2=[0,1,1,0]
为您提供一个新列表,即[0,0,1,1]
或者可能是[1,1,0,0]和[1,1,1,1,1,0,1,0],但只对前4个进行异或运算,然后将第二个列表中的其余部分复制到新列表中,得到[0,0,1,1,1,0,1,0,0,1,0]。在Erlang中,可以使用递归定义
列表\u xor[],L->
L
列表\u xorL,[]->
L
列表异或[H1 | T1],[H2 | T2]->
[H1 bxor H2 |
我使用以下命令启动了我的应用程序:
elixir --erl "-detached" -S mix phx.server
如何停止/重新启动进程?找到了答案
假设是类UNIX系统:
ps aux| grep长生不老药
查找运行已加载elixir和phoenix应用程序的Erlang VM的OS进程的进程id,然后
杀数
阻止它。number是ps aux输出的第二列中的数字(第一列包含拥有(即启动)进程的unix用户的名称)。
之后,您可以再次尝试ps aux | grep
标签: Elixir
phoenix-frameworkecto
我正在学习如何使用EXTO编写查询。我想从has\u many-through关系中筛选结果,如果可能的话,只需通过Repo.all()调用一次数据库
我假设可以通过使用现有查询组合此查询来实现这一点。e、 g
def users(organization_id) do
Repo.get(Organization, organization_id)
|> Ecto.assoc(:users)
end
def bookings(%{organization_id: organiz
我有下面的代码,我想有人会喜欢使用管道,但我不知道如何使用——我尝试了很多不同的方法,但似乎我对管道的工作原理缺少一个关键的理解。总之:下面的代码实现了我想要的功能:
项目有许多预算项目/工作项目
def show(conn, %{"id" => id}) do
project = Clients.get_project!(id)
project = Map.put_new(project, :budget, total_budget(project.b
标签: Elixir
phoenix-frameworkecto
我在尝试使用构造查询时遇到了一个奇怪的错误。
请参阅下面的代码:
iex(24)> import Ecto.Query, only: [from: 2]
nil
iex(25)> from User, limit: 1 # valid
#Ecto.Query<from u in Jcb.User, limit: 1>
iex(26)> opts = [limit: 1]
[limit: 1]
iex(27)> Keyword.keyword? opts
tr
标签: Elixir
phoenix-frameworkecto
我正在制作一种学校状态跟踪器,但我遇到了一个问题。我有两个主要的实体用户、事件和实体存在,它们之间将它们绑定在一起。我正在访问模板中的主实体,但我需要访问相关中间实体以读取状态(如果状态为1绿色背景,如果状态为0红色)
用户:
活动:
schema "events" do
field :name, :string
#Stuff
has_many :presences, Presence, on_delete: :fetch_and_delete
has_man
在显式传递关联的结构上执行验证的正确方法是什么
def changeset(model, params \\ %{}) do
model
|> cast(params, [:name])
|> validate_required([:make, :name])
|> update_change(:name, &String.downcase/1)
|> unique_constraint(:name, name: :models_name_ma
我试图比较Elixir中的字符串位-如果它们相等,则if块触发,或者else块触发
def show(conn, %{"id" => id}) do
Logger.info id
Logger.info "----------"
Logger.info conn.assigns.current_user
if conn.assigns.current_user == id do
professional = Repo.get!(Profess
以下场景:GenStage制作人处理推特流(使用and)并向GenStage消费者提供一组推特(消费者要求的最大需求)。然后消费者只需打印它们
以下问题:我正在寻找特定的tweet,因此并不总是有新的tweet可用。如果GenStage制作人返回的事件列表为空,则消费者将停止询问。更多信息,请参阅
我不知道如何解决这个问题。非常感谢您的帮助。这就是我到目前为止所做的:
defmodule MyApp.TwitterProducer do
use GenStage
alias MyApp.
标签: Elixir
phoenix-frameworkgpionerves-project
我有一个伞式应用程序设置,如前所述,一切都很好地编译
我剩下的一个问题是,在这个场景中,Phoenix应用程序如何与GPIO交互?elixir_ale将只在目标设备上编译,我无法通过Phoenix应用程序引用Neurs项目
场景:我单击众所周知的按钮切换光源。web请求将命中控制器;如何引用底层应用程序以与GPIO交互?您需要创建一些充当中介的MessageBroker。在基于Neurs的设备上运行的OTP应用程序运行在同一个梁上,因此所有常规消息传递功能和模式都可供您使用
您可以使用Phoen
我正在为这样一个模型生成一个唯一的密钥
def changeset(%__MODULE__{} = post, attrs) do
post
|> generate_key()
|> unique_constraint(:key)
end
defp generate_key(changeset) do
key = :crypto.strong_rand_bytes(5)
|> Base.url_encode64
|> binary_part(0,
在我的Phoenix应用程序中,我正在使用和进行用户授权。最初,我只使用了Guardian,所有的auth过程都运行得很好。然而,在将GuardianDb添加到组合中(用于令牌存储)后,令牌记录被正确创建,但我得到了一个无case子句匹配错误,这给工作带来了麻烦,我似乎无法找到解决方法。下面是一切的进展情况
首先,从mix.exs:
{:guardian, "~> 0.14"},
{:guardian_db, "~> 0.8.0"},
config :guardian, Guard
标签: Elixir
phoenix-frameworkecto
在我的Phoenix应用程序中,我有以下模式:
defmodule TattooBackend.Accounts.Account do
schema "accounts" do
field :email, :string
field :crypted_password, :string
field :password, :string, virtual: true
field :password_confirmation, :string, virtual:
标签: Elixir
phoenix-frameworkecto
我在Phoenix应用程序控制器中执行以下操作:
def index(conn, params) do
studios =
if params["search"] do
Studio.search(Studio, params["search"])
else
Studio
end
|> Repo.all
|> Repo.preload(:address)
render c
标签: Elixir
phoenix-frameworknmake
我在订购mix Exto.create时与Phoenix有问题
我在寻找解决办法,但什么也找不到
如果你有主意,我感谢你
你有没有考虑过安装nmake?我重新安装了nmake,现在出现了以下错误:(ErlangError)Erlang错误::eacces Erlang.erl:2118::Erlang.open_端口({:spawn_executable,'c:/Users/Victor/AppData/Roaming/npm/nmake.cmd'},[{:env,[]},{:cd,“d:/pr
标签: Elixir
list-comprehensionphoenix-frameworkecto
我有一个在p.following中返回的角色模型列表,我想将followind\u id字段从这个模型列表中提取到一个单独的列表中
p.followings
returns...
[
%Poaster.Personas.Following{
__meta__: #Ecto.Schema.Metadata<:loaded, "followings">,
followed: %Poaster.Personas.Persona{
__
上一页 1 2 ...
23 24 25 26 27 28 29 ...
下一页 最后一页 共 125 页