这是我尝试过的.
date = Ecto.DateTime.from_erl(:calendar.universal_time())
query |> where([record], record.deadline >= ^date)
Run Code Online (Sandbox Code Playgroud)
我也试过了
date = Ecto.DateTime.from_erl(:calendar.universal_time())
query = from m in MyApp.SomeModel,
where: m.deadline >= ^date,
select: m
Run Code Online (Sandbox Code Playgroud)
两者都返回相同的消息
value `%Ecto.DateTime{..}` in `where` cannot be cast to type :datetime in query
Run Code Online (Sandbox Code Playgroud)
根据我的理解,我应该在我的查询中使用Ecto.DateTime.也许我错过了一些明显的东西?谢谢!
燮,
我正在尝试编码一些嵌套的Ecto模型,但我遇到了一个问题.我意识到我不能对卸载的模型进行编码,我希望有可能只选择一个结构而不加载休息,同时有可能选择整个树.
我用defimpl的方法,例如:
defimpl Poison.Encoder, for: Hangman.MasterCat do
def encode(page, _options) do
%{
id: page.id,
name: page.name,
categories: page.categories
} |> Poison.Encoder.encode([])
end
end
defimpl Poison.Encoder, for: Hangman.Category do
def encode(category, _options) do
IO.inspect(category.words)
%{
id: category.id,
name: category.name,
words: category.words
} |> Poison.Encoder.encode([])
end
end
defimpl Poison.Encoder, for: Hangman.Word do
def encode(page, _options) do
%{
content: page.content
} |> Poison.Encoder.encode([])
end
end
Run Code Online (Sandbox Code Playgroud)
这适用于整个结构,但它不适用于仅选择MasterCats并且它会产生这样的错误.
cannot encode association :categories from Hangman.MasterCat to JSON because the association was not loaded. Please make …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个Plug会对用户进行身份验证(实际检查会话).我无法获得重定向路由.我认为这是因为路由生成在激活此插件后发生.
无论如何我得到这样的错误: undefined function TestApp.page_path/2
在常规背景下,page_path/2显然存在并且有效.
defmodule TestApp.Plugs.Authenticate do
import Plug.Conn
def init(default), do: default
def call(conn, _) do
user = Plug.Conn.get_session(conn, :current_user)
if not is_nil(user) do
assign(conn, :user, user)
else
conn
|> Phoenix.Controller.put_flash(:warning, "User is not authenticated.")
|> Phoenix.Controller.redirect(to: TestApp.page_path(conn, :index))
|> halt
end
end
end
Run Code Online (Sandbox Code Playgroud) 如何使用插头对凤凰的具体操作.想要使用插件进行某些操作的场景,或者相反,不希望在某些操作中使用插件
我想知道目前使用elixir/phoenix框架的网址,我怎么能得到这个?
编辑#1:
我的nginx配置文件:
server {
client_max_body_size 100M;
listen 80;
server_name *.babysittingbordeaux.dev *.babysittingparis.dev
access_log /usr/local/var/log/nginx/baby-access.log;
error_log /usr/local/var/log/nginx/baby-error.log;
location / {
proxy_pass http://127.0.0.1:4000;
}
}
Run Code Online (Sandbox Code Playgroud)
码:
Atom.to_string(conn.scheme) <> "://" <> (Enum.into(conn.req_headers, %{}) |> Map.get("host")) <> conn.request_path
Run Code Online (Sandbox Code Playgroud)
那个例子返回http://127.0.0.1:4000/,我想得到http://www.babysittingbordeaux.dev/
我正处于开发模式.
我在尝试创建数据库时遇到错误.我安装了postgres,我已经成功完成了一些测试项目.而且,我没有看到这个错误.任何帮助都会很棒:
错误:
~/Desktop/elixir/restore $ mix ecto.create
** (Mix) The database for Restore.Repo couldn't be created: tcp connect: connection refused - :econnrefused
21:52:23.978 [error] GenServer #PID<0.150.0> terminating
** (Postgrex.Error) tcp connect: connection refused - :econnrefused
(db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2
(connection) lib/connection.ex:623: Connection.enter_connect/5
(stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: nil
State: Postgrex.Protocol
Run Code Online (Sandbox Code Playgroud) 我想在没有第三方库的情况下获得Phoenix/Elixir的当前日期时间戳.或者简单地说,我想要类似的东西DateTime.now().我怎样才能做到这一点?
我们正在尝试将我们的Phoenix Web App部署到Linux VM(在我们的Azure案例中)使用edeliver
我们已经使用Azure部署了一个"基本"博客应用程序,edeliver并记录了以下步骤:https:
//github.com/dwyl/learn-微软蔚蓝#部分2 -部署-您的应用程序
而当我们手动运行(" 实 ")的应用程序:https://github.com/nelsonic/healthlocker
使用上的实例MIX_ENV=prod mix phoenix.server运行良好!
当我们使用以下命令将应用程序部署并运行到Azure实例时:
mix edeliver build release --verbose
mix edeliver deploy release to production
mix edeliver start production
Run Code Online (Sandbox Code Playgroud)
我们收到一条肯定的确认消息:
EDELIVER HEALTHLOCKER WITH START COMMAND
-----> starting production servers
production node:
user : root
host : 51.140.86.5
path : /home/hladmin
response: ok
START DONE!
Run Code Online (Sandbox Code Playgroud)
但是当我们netstat -plnt按照check-running-services-on-linux的 …
我的头衔不是很好,因为我发现很难用小片段来解释我想要的东西......所以我会深入尝试!
我正在使用Phoenix Web框架编写Elixir应用程序.
我想要做的是:
该过程不需要返回到Web路由(即其异步)
我知道如何通过使用消息队列(Beanstalk,RabbitMQ,sidekiq)来处理其他语言,并将"作业"交给工作人员,然后编写工作人员来处理队列中的作业.
但是......我知道在Elixir中它默认排队,因为所有内容都被推入"邮箱"(在YouTube视频中看到它:p)
但是我找不到任何合适的代码示例来说明如何让控制器(在phoenix中)产生一个异步进程,该进程将在消息队列中处理.
有没有人知道任何体面的资源,显示我正在寻找什么,或者是否有人有任何代码片段,将给我一个基本的描述如何做到这一点.
谢谢 :)
编辑:
正如评论中所提到的,我已经创建了一个基本教程,介绍如何在Elixir应用程序中启动和运行Poolboy.我希望它对人们有用(并且正确!):)
如果我想创建一个模块,其中包含可以在每个模板中访问的函数,并且我可以使用该视图的所有功能(创建标记,使用路由器路径等),那么实现该功能的最佳方法是什么?
简而言之,我如何创建全局视图?