Phoenix框架是否使用了任何类型的回调过滤器,如中的回调过滤器?我知道可以验证变更集,但我正在寻找实施操作的方法,例如创建之前的、保存之前的、提交之后的
它们与Rails明显不同:它们接收并必须返回变更集,并且必须用于数据一致性(不要使用它们发送电子邮件等等)。从Ecto 2.0开始,回调被完全删除。
那么现在如何处理回调呢?。这里有两种方法
对于之前的回调,您可以使用自身。删除回调的原因之一是,许多开发人员在变更集足够的情况下依赖回调。因此,只需将所需函数应用于变更集
def change
我在想办法从我的牛仔创业电话中得到线索
token = RandomString.generate()
Plug.Adapters.Cowboy.http MyRouter, []
到路由器中使用的代码:
get "/webhook/:token" do
if token == [what I generated earlier] do
# handle request
end
end
更具体地说:我正在一个webhook服务器上工作。我想:
在服务器启动时生成一个秘密令牌
我正在我的长生不老药应用程序中使用elli
下面提供了示例代码。它非常基本,每次运行时,我只得到“内部服务器错误”。我不确定我做错了什么。有人能帮忙吗
defmodule Client.TestHttp do
@behaviour :elli_handler
def handle(_Req,_Args) do
handle(:elli_request.method(Req), :elli_request.path(Req),Args)
end
def handle_e
使用mix phoenix.gen.html,我创建了一个新的Ecto模型和相关的路由,并将资源/用户UserController添加到我的router.ex。正如所料,这会自动生成URL,如/users/:id、/users/:id/edit等
我想将URL结构更改为类似于/users/:slug/:id/,其中slug是用户模型上的一个字段。在仍然使用Phoenix资源路由的情况下,有没有办法指定这个新的URL结构
如果它能让事情变得更简单:我并不特别关心验证:slug,或者如果客户输入错误
在Elixir中,您可以获得字符串的md5:
ex(1)> :crypto.hash(:md5 , "Elixir") |> Base.encode16()
"A12EB062ECA9D1E6C69FCF8B603787C3"
但为什么不从终端返回相同的值呢
[~ ~]$echo 'Elixir' | md5
694f56f4b30e60837151723777795fc2
当然我遗漏了什么。echo命令将包含一行新行:
iex>:crypto.hash(:md5, "El
我刚开始使用Elixir Phoenix新的web应用程序,包括:
mix phoenix.new phoenix_sample --database mssql
它生成了带有db配置的config/dev.exs文件,我已修改以匹配当前的ms sql server:
config :phoenix_sample, PhoenixSample.Repo,
adapter: Tds.Ecto,
username: "dev",
password: "dev",
database:
为了学习长生不老药,我想解决这个问题:
为了通过董事会,我会这样开始:
在python中:
row_indexes = ["A","B","C","D","E","F","G","H","I"];
col_indexes = ["1","2","3","4","5","6","7","8","9"];
row_box_indexes = [["A","B","C"],["D","E","F"],["G","H","I"]];
col_box_indexes = [["1","2","3"],["
标签: Elixir
freebsdphoenix-frameworklets-encryptexrm
我想将phoenix应用程序部署到digital ocean的FreeBSD服务器,但我对所有这些新技术有点困惑。我也是一个新手在部署。我以前使用过heroku,但从未“真正部署”:
下面是我目前所做工作的列表:
1) 下载的virtualbox
2) 创建和配置FreeBSD与服务器类似,以便exrm在同一环境中运行
3) 运行letsencrypt auto-certonly--config/etc/letsencrypt/letsencrypt.ini,其中letsencrypt.ini为
标签: Elixir
phoenix-frameworkecto
我的new.eex中有此代码:
<%= if Enum.any?(@changeset.errors) do %>
<%= rendering_code_is_here %>
<% end %>
因此,在我的控制器中,我有:
def new(conn, _params) do
changeset = Content.changeset(%Content{})
render conn, "new.html", changeset: ch
我有一个模块
defmodule There do
import Othermodule, only: [a: 1]
def b do
end
end
如何获取函数列表a和b?您可以使用与模块组合的功能。\ uuuu info\uuuu(:函数):
如果你删除最后一个Enum.map你会得到一个{function\u name,function\u arity}的关键字列表,你可以在那里使用获得定义的函数。你为什么需要这个?也许有另一种方法可以实现你想要的。在那里。\u信息(:函
我在测试中添加了login_as标记,phoenix开始给出该异常:
defmodule Rumbl.VideoControllerTest do
use Rumbl.ConnCase
setup %{conn: conn} = config do
if username = config[:login_as] do
user = insert_user(username: username)
conn = assign(conn(), :current
标签: Elixir
phoenix-frameworkecto
我想对体外受精结果进行计算。我有一个产品表,有颜色、等级、品牌标识、价格。我想按范围0-1、1-2、2-3、3-4、4-5和每个范围内的产品数量对评级进行分组。我对长生不老药和埃克托很陌生。感谢所有帮助。这里有一个简单的方法,只需使用floor即可获得评级范围下限:
defmodule QueryHelpers
@doc "floor function for postgres"
defmacro floor(x) do
quote do
fragment("flo
我使用mix创建了一个新项目,正在尝试alias,这是我的简单代码:
defmodule MyModule do
alias IO.puts
def hello do
IO.puts(:world)
end
end
但这又让我想起了这个错误:
别名的参数无效,应为编译时原子或别名,get:IO.puts()
我也试过:
alias IO.puts, as: puts
alias IO.puts, as: puts()
alias IO.puts(), as: puts
鉴
我将其添加到我的基本布局文件中:
<%= if Mix.env() in [:prod] do %>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?........................
</script>
<% end %>
标签: Elixir
elixir-mixerlang-supervisorelixir-iex
因此,我有一个应用程序模块,它遵循以下布局:
defmodule Project.Application do
use Application
def start(_type, _args) do
children = [
randomchild1,
randomchild2,
{Project.runapp, "argument" }
]
opts = [strategy: :one_for_all, name: Pr
标签: Elixir
phoenix-frameworkphoenix
我在Phoenix框架上与我的项目的jquery连接有问题。我已经通过npm安装安装了jQuery
NPMIjQuery
我将导入添加到app.js
import $ from 'jquery'
我在package.json上的依赖项
"jquery": "^3.4.1",
"phoenix": "file:../deps/phoenix",
"phoenix_html": "file:../deps/phoenix_html"
但在控制台中,我有一个错误
未捕获引用错误:$未定义
我的js
在Elixir中,有一些双下划线函数,如编译前的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。然而,我也看到了一些双下划线\uuuuuu函数\uuuu,它们的命名似乎没有什么神奇的要求。例如,在EXTO中,调用以下函数
Ecto.Schema.__source__(source),
Ecto.Schema.__fields__(fields),
Ecto.Schema.__as
当我浏览到内插部分时,我正在浏览EXTO文档,其中EXTO使用扬抑(^)符号,如下所示
def with_minimum(age, height_ft) do
from u in User,
where: u.age > ^age and u.height > ^(height_ft * 3.28)
end
让我想知道,它有什么作用?:-) 在Elixir中,pin操作符用于模式匹配,以匹配变量的当前值。您可以在此处阅读更多信息:
EXTO将pin运算符更改为mean
我正在努力学习戴夫·托马斯的《编程长生不老药》。现在我说到了创建第一个混合项目的地方。HTTPoison刚刚被引入并添加到mix.exs中的应用程序函数中。现在,该项目应该第一次使用iex-SMIX编译。当时,我遇到了ssl\u verify\u hostname的问题。在安装了erlangsrc和erlangdev之后,我现在被以下控制台输出卡住了
$ iex -S mix
Erlang/OTP 18 [erts-7.1] [source] [64-bit] [smp:8:8] [async-
我想要一个数据库表,它有一个“action”字段。我想在现场存储一个长生不老药功能。这可能吗
该函数始终只接受一个参数。这里是我过去使用过的一个Ecto类型,它与上面注释中链接到的@AbM非常相似:
deferlangetf do模块
定义类型,do::binary
def cast(二进制=>)do
试着做
{:好的,:erlang.binary_to_term(binary)}
接住
_ ->
{:好的,二进制}
终止
终止
def cast(any),do:{:好的,any}
def加载(
我正在使用Phoenix框架并尝试创建一个用于身份验证的插件,但遇到了一个错误。下面是这个示例代码
defmodule ChhutiServer.GoogleAuthController do
use ChhutiServer.Web, :controller
use ChhutiServer.Plugs.GoogleAuth
end
# inside lib/plugs
defmodule ChhutiServer.Plugs.GoogleAuth do
import Plug
请考虑以下代码段:
index使用render函数,它是从use Rumbl.Web,:controller触发的导入中获得的
我知道还导入了其他功能。但长生不老药是否提供了列出它们的方法
我可以在Elixir中列出当前作用域的可用函数吗?您可以从\uuuu ENV\uuuu宏中获得此类信息。提供了it返回的文档
该结构中最有趣的字段是函数和宏,其中包含当前可用函数和宏的列表以及它们的源模块。相关问题:太棒了!在我的Phoenix示例中,raiseinspect(\uuuu ENV\uuuu.f
我最近升级到Phoenix 1.1.0,以前通过的测试代码现在抛出了一个错误。测试代码为:
test "/api call with invalid unique_code gets an error code", %{conn: conn} do
conn = recycle(conn)
|> put_req_header("unique_code", "123")
|> put_req_header("domain", "cision
标签: Elixir
phoenix-frameworkecto
我有两个模型-User和ApiKey(User有很多api键),我正在尝试创建条件连接。我的意思是,我想用单个查询用户的活动ApiKeys加载。我当前的代码看起来像
query = from u in User,
join: a in assoc(u, :api_keys),
where: u.email == ^email,
preload: [api_keys: a]
user = Repo.one(query)
Repo.preload
我已将guardian设置为在令牌中对特定权限进行编码,但是,我想在我的UserController中将其限制为仅在特定操作中需要它([:index,:show,:edit,:update,:delete])。我使用控制器顶部的以下行要求整个控制器具有管理员:[:cms]权限:
plug Guardian.plug.com,处理程序:Ay.Guardian.ErrorHandler,管理员:[:cms]
这很好,但我想在此添加一个类似于guard的子句(例如,在[:index,:show,:ed
我有一个elixir中的web应用程序,看起来像这样
defmodule Test do
use Plug.Router
plug :match
plug :dispatch
def expensiveComputation() do
// performs an expensive computation and
// returns a list
end
get "/randomElement" do
randomElement =
我想知道如何从给定的字符串中删除逗号。我的尝试是:
st = "1,2,3"
String.strip(st, ?,)
#=> "1,2,3"
我做错了什么?String.strip/2只删除字符串开头和结尾的字符。我相信你在找我。像这样使用它:
String.replace("1,2,3", ",", "")
你也可以这样做:
st |> String.split(",") |> Enum.join
当然,最好使用标准工具,但这是另一种选择
我学习长生不老药只是因为互联网上的很多文章都承诺它的响应时间不到一毫秒。我昨天构建了我的第一个应用程序,我发现它的性能比rails快不了多少。发生了什么事
让我解释一下我的应用程序。它实现了ecto安全密码包提供的基本身份验证机制:
这是我的控制器:
defmodule HelloPhoenix.SessionController do
use HelloPhoenix.Web, :controller
def create(conn, %{ "session" => %{ "u
我想在web/templates/user/form.html.eex中添加逻辑,根据@current\u user在user#new和user#edit中呈现。但是如果我执行以下代码,我会得到一个assign@current\u用户在eex模板中不可用的错误
<%= if @current_user do %>
<h1>Example</h1>
<% end %>
例子
如何使@current_user在form.html.eex中可用
我有一个玩具项目,我用它来帮助我学习长生不老药/凤凰
我正在从csv导入一些数据,如果这些记录根据我的变更集是有效的,我想将它们插入数据库
我的问题是,有时通常包含整数的列中的一列会有“n/a”。这会导致变更集无效,这是应该的
我不确定处理这件事的灵丹妙药标准方法是什么
在这些情况下,我只希望将“n/a”转换为0
您通常会为此编写一个进行转换的自定义类型吗
在Rails中,我可能会在模型上使用自定义setter或before_save之类的工具来解决这个问题。我会在模型的变更集功能中解决这个问
我正在尝试使用I,当我执行类似I 123的操作时,我得到**(CompileError)iex:3:未定义函数I/1
有人能帮我吗?我做错了什么
编辑:这是我的控制台的屏幕截图。您是否将i 123放在您的实际代码文件中或在IEX终端中使用它
如果在IEx中,它应该是开箱即用的,例如:
iex(2)> i 123
Term
123
Data type
Integer
Reference modules
Integer
iex(3)>
但是,如果要在代码中使用它,比如说方
我有一个表单供用户输入信息。如果添加成功与否,我希望弹出一条消息(没有页面重定向,比如AJAX调用)。问题是出现了Plug.Conn.NotSentError错误
模板:
<%= form_for @changeset, foo_path(@conn, :create), fn f -> %>
<div class="form-group">
<%= text_input f, :email, placeholder: "Email", class
标签: Elixir
phoenix-frameworkecto
我有一个非常简单的问题:
以及移民:
defmodule MyApp.Repo.Migrations.CreateUser do
use Ecto.Migration
def down do
drop table(:users)
end
def change do
drop_if_exists table(:users)
create table(:users) do
add :name, :string
timestamps(
有人知道如何在凤凰城用长生不老药从空白中去除html吗?
我确实看到了String.strip,但我检查了渲染返回的内容,它不是字符串。。。我正在考虑如何将其放在模板中。。但我真正想做的是去掉html标记之间的所有空白
为什么?
这样我就可以在css:D中使用:empty了
示例
<div id="hide-me-if-no-content">
<%= content, some times, this actually spans multiple lines, ther
标签: Elixir
phoenix-frameworkphoenix-channels
频道具有authorized?功能,我想在加入频道时传递生成的本地令牌,以便验证用户的角色,如下所示:
const data = { token: localStorage.getItem('phoenixAuthToken') };
channel.join(data).receive('ok', (response) => {
...
});
});
但是,在我的频道设置中,我似乎在加入时没有收到来自客户端的任何信息:
标签: Elixir
phoenix-frameworkecto
我有下面的模式
defmodule Message do
use Ecto.Schema
schema "messages" do
belongs_to :user, FPL.Club, foreign_key: :user_to_id
belongs_to :user, FPL.Club, foreign_key: :user_from_id
end
end
如您所见,我想在这里定义两个属于的关系,分别对应于发送消息的用户和发送消息的用户。在消息表中,我有两个名
假设我有一个用于用户的模块,它有两个函数,接受变更集并向其添加变更,如->
defmodule MyApp.User do
def confirm(changeset_or_struct) do
changeset_or_struct
|> Ecto.Changeset.change(confirmed: true, confirmed_at: Timex.now())
end
def update_session(changeset_or_struct,
标签: Elixir
phoenix-frameworkgettext
在我的凤凰城项目中,我的priv/gettext/pl/error.po文件中有以下翻译:
msgid "should be at least %{count} character(s)"
msgid_plural "should be at least %{count} character(s)"
msgstr[0] "Ma nieprawidłową długość (powinna wynośić co najmniej %{count})."
msgstr[1] "Ma nieprawi
我想在其中创建一个存根模板:
my_str_template = "some string {some_stub_var}"
# note that there's no variable "some_stub_var" in the current scope
因此,稍后在我的应用程序中,我可以执行以下操作:
my_str = my_str_template.format(some_stub_var: "my_real_string_var_123")
1) 怎么做
2) 它叫什么
我正在将一个解密函数从.NET移植到elixir,作为概念证明
有谁能给我一些关于Erlang加密模块是否可行的指导吗?我已经使用了块_decrypt函数,但始终无法得到正确的结果。我想我的问题是因为钥匙和IV不正确
我不确定如何从加密的纯文本值派生字节数据,以传递到块\u解密
以下是我尝试解密的长生不老药代码:
defmodule TestApp.Decrypt do
@iv <<30,64,180,159,172,197,92,10,197,3,39,75,53,92,93,
标签: Elixir
phoenix-frameworkecto
我有这个模板,它的工作很好
<h2>Listing videos</h2>
<table class="table">
<thead>
<tr>
<th>User</th>
<th>Url</th>
<th>Title</th>
<th>Description</th>
我正在尝试使用:observer.start检查我的应用程序,我尝试了交互式elixir控制台:
iex -S mix
当然,这将加载所有依赖项并启动应用程序,然后我可以使用::observer.start
但我注意到我无法使用浏览器浏览应用程序,例如:localhost:4000
只有使用以下方法启动应用程序,我才能浏览该应用程序:mix phoenix.server
问题是,当应用程序以iex-S mix启动时,我如何浏览该应用程序
编辑
所有这些过程是什么?我什么都没做就启动了应用程序?
标签: Elixir
phoenix-frameworkelixir-mix
基本上类似于C/C中的ifdef/\else/\endif++
我希望在mix test期间出现一些代码top,并在生产中删除,因此我不需要在经常调用的代码段中测试mix.env==:test
我知道这被认为是一种不好的做法,但它是否可能以及如何实现?在构建发行版时,Mix是可用的。在版本本身中,它不是。如果确定要从发布版本中删除代码,请使用宏:
defmodule strippendrelease do
defmacro fun(do:block)do
如果Mix.env==:测试do
块#A
我有以下功能:
defmodule TestQuery do
def build_query() do
Enum.map(["test1", "test2", "hello"], fn item ->
query(item)
end)
end
def query(item) do
case item do
"test1" -> %{"test1" => 1}
"test2" -> %{"test2
我想在Elixir中放置、获取和更新嵌套地图,使用put_in、get_in、和update_in,但如何“删除中的_”
假设我有这个嵌套映射,我想删除键:c及其关联值
iex(1)> mymap = %{:a => %{:b => 1, :c => 2}}
%{a: %{b: 1, c: 2}}
我如何以有效的方式回到这一点
{%a: %{b: 1}}
你在找我。该函数返回弹出值和移除弹出值后的其余值。您可以通过管道连接到|>元素(1)忽略弹出的值
或
你在找我。
我正在学习Elixir,刚刚学习了两对相等运算符,==,=和===,和==。我认为Elixir有两组相等运算符是一个错误。他们为比较int和float的情况创建了一个“严格”相等运算符。请注意,当比较两种不同的类型时,按值比较int和float的这种情况是运算符正常工作方式的一个例外,这会导致类型比较,而不是值比较。
所以我们对类型比较规则做了一个例外,并添加了两个操作符来支持该例外。回报是多少?因此,可以用价值最为糟糕的编程实践来比较英特斯和浮标。
严格等式算子的作用应该存在于正规算子中。这样
标签: Elixir
phoenix-frameworkguardian
我正在尝试使用Guardian在我的Phoenix应用程序中实现基于权限的安全性。我在网上找到了一些示例,但当我尝试实现它们时,我无法克服这个错误:
** (UndefinedFunctionError) function Guardian.Plug.EnsurePermissions.init/1 is undefined (module Guardian.Plug.EnsurePermissions is not available)
我已经安装了一个基本的身份验证工作。我不知道我错过了什
我刚刚将我的Elixir/Phoenix应用程序升级到Elixir 1.9.0,Phoenix 1.4.10
木材记录器后端在升级后停止工作。在登录到Timber时,我总是遇到500个HTTP错误
我的新木材包版本是3.1.0。
旧的(Elixir 1.6+上的木材2.8.0,Phoenix 1.3+)运行良好
我在这里试过医生:
事实证明,该部分中的POST和curl示例也返回了500个错误
有人有同样的问题吗?如有任何建议,我们将不胜感激
谢谢。我想出来了
示例中的URL是
当我在木材中创建
作为一个例子,我现在正在使用以下内容
query=”“”
选择重元组
作为近似行数
来自PGU班
其中relname='表';
"""
查询
|>Repo.query!()
|>Map.get(:行)
|>List.flatte()
|>表1.first()
|>trunc()
它执行查询,接收结果
%Postgrex.Result{
列:[“近似行数”],
命令::选择,
连接id:17152,
信息:[],
行数:1,
行:[[1494644.0]]
}
选择行[[1494644.0]]
假设我有一个如下的函数定义:
def my_函数(参数)do
做某事(争论)+2
结束
现在,我期望的输出是这样的:
>函数体(&my\u函数/1)
“做某事(论据)+2”
有什么方法可以实现它吗?我认为,如果您生成一个发行版,那么源代码就不再用于执行此操作,但是在测试环境中,您可以提取给定函数的AST,如下所示:
def fetch_ast(模块,乐趣)do
模块.\uuuuu信息\uuuuuu(:编译)[:源代码]
|>to_string()
|>File.read!()
|>Code.
上一页 1 2 ...
52 53 54 55 56 57 58 ...
下一页 最后一页 共 125 页