小编Don*_*ter的帖子

哦-my-zsh提示符中的~RVM_PROJECT_PATH

最近在已经安装了RVM的新机器上安装了.oh-my-zsh.

注意到在我的几个Rails项目目录中,我现在看到的是这个而不是项目目录的实际名称:

?  ~RVM_PROJECT_PATH git:(master) 
Run Code Online (Sandbox Code Playgroud)

所有其他行为似乎都很正常,但我发现很难确定.oh-my-zsh配置中的原因.

rvm oh-my-zsh

15
推荐指数
2
解决办法
1973
查看次数

如何Zlib膨胀Elixir中的字节列表?

给定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"作为一个论点,所以也许我只需要转换它?

zlib elixir

6
推荐指数
1
解决办法
907
查看次数

在Elixir中使用本地存储库?

在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)

elixir-mix elixir phoenix-framework

5
推荐指数
1
解决办法
352
查看次数

在Phoenix Framework表单中,如何使用changeset将belongs_to关系设置为null?

在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,并将更新的地图传递给变更集.但有更简单的方法吗?

elixir ecto phoenix-framework

5
推荐指数
1
解决办法
808
查看次数

使用索引或位图索引扫描对时间戳进行高效的 PostgreSQL 查询?

在 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

4
推荐指数
1
解决办法
4022
查看次数

设置变量时,记录的IS NOT NULL测试不返回TRUE

使用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什么?

sql postgresql null row plpgsql

3
推荐指数
1
解决办法
800
查看次数