阅读内置异常我读到:
所有用户定义的异常也应该从这个类派生"关于异常.
我还看到一个ValueError,它说:
当内置操作或函数接收到具有正确类型但不适当值的参数时引发,并且情况不会由更准确的异常(如IndexError)描述.
如果我想为无效参数引发异常(相当于Ruby的ArgumentError),我该怎么办?我应该ValueError
直接提出,或者最好是以我自己的意图揭示名称来继承ValueError吗?
在我的例子中,我接受一个关键参数,但我想限制键中的字符集,这样只/\A[\w.]+\Z/
接受(Perl/Ruby正则表达式).
我想生成一个日期列表,希望加入另一个表,但我不知道使用什么语法,类似于这个:
SELECT dates.date, transactions.account_id, transactions.amount
FROM (...) as dates
LEFT JOIN transactions ON transactions.date = dates.date
WHERE dates.date >= '2010-01-01' AND dates.date <= '2010-12-31'
ORDER BY dates.date;
Run Code Online (Sandbox Code Playgroud)
我想要日期,所以我没有必要进一步按摩数据客户端.我用它来显示一个类似于这样的表:
Account 2010-01-01 2010-01-02 2010-01-03 Balance
============================================================
Chase 123 +100 -20 -70 +10
Chase 231 +13 -9 +4
Run Code Online (Sandbox Code Playgroud) 我有许多机器的crontabs,并希望看到什么时候开始,并确保数据库服务器上的负载会很好.是否有一个工具可以将crontab条目转换为iCal,或者是直接进行可视化的工具?
我有一个数组作为一列的表,我想将数组元素加在一起:
> create table regres(a int[] not null);
> insert into regres values ('{1,2,3}'), ('{9, 12, 13}');
> select * from regres;
a
-----------
{1,2,3}
{9,12,13}
Run Code Online (Sandbox Code Playgroud)
我希望结果如下:
{10, 14, 16}
Run Code Online (Sandbox Code Playgroud)
那就是:{1 + 9, 2 + 12, 3 + 13}
.
这样的功能在某处已经存在吗?插入扩展看起来是一个很好的候选者,但这样的功能尚不存在.
预计数组的长度在24到31个元素之间,所有元素都是NOT NULL
,并且数组本身也将是NOT NULL
.所有元素都是基本的int
.每个聚合将有两行以上.在查询中,所有数组都将具有相同数量的元素.不同的查询将具有不同数量的元素.
我的实现目标是:x86_64-unknown-linux-gnu上的PostgreSQL 9.1.13,由gcc编译(Ubuntu/Linaro 4.6.3-1ubuntu5)4.6.3,64位
ActiveRecord提供更改跟踪,其中调用#name_changed?
返回true/false,具体取决于name
属性在加载模型和现在之间是否更改.
协会有同等效力吗?我特意寻找has_many关联,但所有关联类型都很有用.
Rails 5.2,Ruby 2.5.1
ls
报告以下内容:
# ls -ld /var/lib/puppet/state/
drwxr-xr-t 3 puppet puppet 4096 Jan 8 16:53 /var/lib/puppet/state/
Run Code Online (Sandbox Code Playgroud)
"t"对其他人意味着什么?什么工具报告权限的符号名称?ls
有--numeric-uid-gid
选项,但还有另一个权限吗?
我一直在读"SQL反模式:避免数据库编程的陷阱"一书,特别是围绕魔豆反模式.其中显示了使用域模型解耦activerecords的图表,并且在PHP中有示例,但不是Rails,它将此称为域模型和视图/控制器之间的HAS-A聚合以及域模型和activerecords之间的HAS-A组合(I假设这是UML说话).
在Rails中,通过使用模型方法来制作瘦控制器胖模型似乎很常见,这些方法可能会操纵其他相关模型,因此在任何给定的控制器中只能使用一个模型.但是,我想知道是否有一种练习包括Rails中的完全解耦?
也就是说,创建一个无表格模型或其他类作为域模型,充当控制器和activerecord对象之间的层(反过来又映射到表),这样控制器可以更好地隔离,不需要知道任何东西关于底层数据库及其结构.它还提供了远离CRUD方法的选项,这些方法无法解释它们适用的应用程序要求,这是书中的另一个批评.
activerecord domain-driven-design anti-patterns ruby-on-rails domain-model
我尝试了几件事:S3Browse,RightAws Ruby gem和其他工具.所有允许在单个密钥的基础上授予访问权限,但我无法在存储桶上设置ACL.实际上,我在存储桶上设置了ACL,没有返回任何错误.但是当我刷新或检入其他工具时,存储桶的ACL仅重置为所有者.
我想为我正在开发的应用程序提供对FlixCloud的读写访问权限.他们需要访问权来编写输出文件.
RabbitMQ 提供了一个优先级队列,其中消息可能具有优先级并以相反的优先级传递给消费者。
使用Bunny gem,我创建了一个优先队列。然后,我发布 5 条没有优先级的消息和 2 条优先级为 1 的消息,并检查我的消费者日志。不幸的是,我的消费者告诉我它处理 5 条无优先级消息,然后处理 2 条具有优先级的消息。通过添加睡眠,我确保每条消息至少需要 2 秒来处理。我的频道的预取也设置为 1。这是我使用的示例代码
require "bunny"
require "logger"
logger = Logger.new(STDERR)
bunny = Bunny.new(ENV["AMQP_URL"], logger: logger)
bunny.start
at_exit { bunny.stop }
channel = bunny.channel
channel.prefetch 1
routing_key = "build-show-report"
exchange = channel.exchange("signals", passive: true)
queue = channel.queue("signal.#{routing_key}", durable: true, arguments: {"x-max-priority" => 3})
queue.bind(exchange, routing_key: routing_key)
queue.subscribe(manual_ack: true, block: false) do |delivery_info, properties, payload|
logger.info "Received #{payload}"
sleep 2
channel.acknowledge(delivery_info.delivery_tag, false)
end
5.times {|n| …
Run Code Online (Sandbox Code Playgroud) 我有以下内容shell.nix
(设置我的开发环境,没有 NixOS):
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "my-shiny-project";
buildInputs = [
jq
nodejs-6_x
#postgis {version="2.3.1";}
#postgis ("2.3.1")
#postgis "2.3.1"
postgresql96
zsh
];
shellHook = ''
export SHELL=zsh
export PATH="$PWD/node_modules/.bin/:$PATH"
'';
}
Run Code Online (Sandbox Code Playgroud)
PostGIS 需要一个版本参数。我不确定如何传递该参数。无论我使用postgis{version="2.3.1";}
,postgis("2.3.1")
还是postgis "2.3.1"
,我都会收到以下错误:
错误:无法将集合强制为字符串,位于 /nix/store/0rj9y7gvzzahp93cvdmrwc2v2aznh61p-nixpkgs-18.03pre118061.69607d7662/nixpkgs/pkgs/stdenv/generic/make-1
在函数和导入 Nix 药丸的无名和单参数部分,我看到调用函数的语法很简单NAME PARAM
。
我必须添加什么才能buildInputs
为该特定版本的 PostgreSQL 安装 PostGIS?
activerecord ×2
postgresql ×2
acl ×1
amazon-s3 ×1
bunny ×1
cron ×1
crontab ×1
domain-model ×1
exception ×1
icalendar ×1
ls ×1
nix ×1
python ×1
sql ×1