最近在已经安装了RVM的新机器上安装了.oh-my-zsh.
注意到在我的几个Rails项目目录中,我现在看到的是这个而不是项目目录的实际名称:
? ~RVM_PROJECT_PATH git:(master)
Run Code Online (Sandbox Code Playgroud)
所有其他行为似乎都很正常,但我发现很难确定.oh-my-zsh配置中的原因.
给定Elixir中代表压缩文件的二进制文件,如何将它们传递给Erlang的zlib来进行膨胀?
compressed = <<120, 218, 237, 125, 123, 115, 28, 71, 126, ...>>
Run Code Online (Sandbox Code Playgroud)
我试过了:
z = :zlib.open()
uncompressed = :zlib.inflate(z, compressed)
:zlib.close(z)
Run Code Online (Sandbox Code Playgroud)
返回的错误是:
** (ErlangError) erlang error: :einval
:zlib.call/3
:zlib.inflate/2
Run Code Online (Sandbox Code Playgroud)
期待一个"iodata"作为一个论点,所以也许我只需要转换它?
在Phoenix Framework项目中包含外部存储库时,可以传递Github选项:
{:example, "~> 0.9.9", github: "somewhere/example"}
Run Code Online (Sandbox Code Playgroud)
是否有包含本地存储库的选项,类似于Gemfile中的Rails约定?
gem 'somewhere', '0.0.2', :path => 'some/local/directory'
Run Code Online (Sandbox Code Playgroud) 在Phoenix Framework表单中,我的页面上有一个选择框,可以选择将belongs_to值设置为nil.
<%= select f, :relation_id,
Enum.into(Enum.map(@relations, fn p -> {p.name, p.id} end),
[{"None", nil}]) %>
Run Code Online (Sandbox Code Playgroud)
表单通常会发送ID,但是当选择nil值时,它会将值作为空字符串传递:
"relation_id" => ""
Run Code Online (Sandbox Code Playgroud)
我从Ecto收到一个错误,即更改集无效,因为它需要一个整数.我可以拦截地图,将值设置为null,并将更新的地图传递给变更集.但有更简单的方法吗?
在 PostgreSQL 中,我的表上的日期字段有一个索引tickets
。当我将字段与 进行比较时now()
,查询非常有效:
# explain analyze select count(1) as count from tickets where updated_at > now();
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------
Aggregate (cost=90.64..90.66 rows=1 width=0) (actual time=33.238..33.238 rows=1 loops=1)
-> Index Scan using tickets_updated_at_idx on tickets (cost=0.01..90.27 rows=74 width=0) (actual time=0.016..29.318 rows=40250 loops=1)
Index Cond: (updated_at > now())
Total runtime: 33.271 ms
Run Code Online (Sandbox Code Playgroud)
now()
如果我尝试将其与负间隔进行比较,它会走下坡路并使用位图堆扫描。
# explain analyze select count(1) as count from tickets where updated_at > (now() - '24 hours'::interval);
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------------------
Aggregate (cost=180450.15..180450.17 rows=1 width=0) …
Run Code Online (Sandbox Code Playgroud) sql postgresql indexing sql-execution-plan postgresql-performance
使用plpgsql过程提取记录(如果存在),如果存在,则使用它执行某些操作.
变量是一个rowtype:
my_var my_table%rowtype;
Run Code Online (Sandbox Code Playgroud)
我用SQL语句填充它:
select * from my_table where owner_id = 6 into my_var;
Run Code Online (Sandbox Code Playgroud)
我知道它肯定有一行:
raise notice 'my_var is %', my_var;
Run Code Online (Sandbox Code Playgroud)
返回:
NOTICE: my_var is (383,6,10)
Run Code Online (Sandbox Code Playgroud)
但是现在我想测试一下,如果条件失败,它会得到记录和两者:
if my_var is null then
raise notice 'IT IS NULL';
end if;
if my_var is not null then
raise notice 'IT IS NOT NULL';
end if;
Run Code Online (Sandbox Code Playgroud)
这些加注都没有出现在我的消息日志中 - 它只是从不进入块.如果你从一个行收到一行,测试的正确方法是SELECT * INTO
什么?