小编Tim*_*imH的帖子

Rails Active Record查找(:all,:order =>)问题

我似乎无法使用ActiveRecord :: Base.find选项:一次订购多个列.

例如,我有一个带有日期和参加列的"显示"模型.

如果我运行以下代码:

@shows = Show.find(:all, :order => "date")
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

[#<Show id: 7, date: "2009-04-18", attending: 2>, 
 #<Show id: 1, date: "2009-04-18", attending: 78>, 
 #<Show id: 2, date: "2009-04-19", attending: 91>, 
 #<Show id: 3, date: "2009-04-20", attending: 16>,
 #<Show id: 4, date: "2009-04-21", attending: 136>]
Run Code Online (Sandbox Code Playgroud)

如果我运行以下代码:

@shows = Show.find(:all, :order => "attending DESC")

[#<Show id: 4, date: "2009-04-21", attending: 136>,
 #<Show id: 2, date: "2009-04-19", attending: 91>,
 #<Show id: 1, date: "2009-04-18", attending: 78>,
 #<Show id: 3, date: …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails

76
推荐指数
3
解决办法
15万
查看次数

在条件子句中赋值是否具有良好的ruby风格?

为了更简洁地写,而不是这样做:

test_value = method_call_that_might_return_nil()
if test_value
  do_something_with test_value
end
Run Code Online (Sandbox Code Playgroud)

我一直在条件中分配:

if test_value = method_call_that_might_return_nil()
  do_something_with test_value
end
Run Code Online (Sandbox Code Playgroud)

这是不好的风格?更简洁的语法:

do_something_with test_value if test_value = method_call_that_might_return_nil()
Run Code Online (Sandbox Code Playgroud)

根据Matz(http://redmine.ruby-lang.org/issues/show/1141),正如另一个SO问题所讨论的那样,不允许在1.9中保持这种状态.

鉴于分配和比较可能混淆,这是否使得阅读代码变得太难?

ruby coding-style

48
推荐指数
4
解决办法
2万
查看次数

PostgreSQL中的本地时区偏移量

我的网络应用程序以UTC为单位存储所有时间戳,没有时区.我有一个shell/psql脚本,它返回最近登录的列表,我希望该脚本在服务器的本地时区显示登录时间(这可能因服务器的位置和夏令时而异).

要获得表示我的数据库服务器的时区和UTC之间的差异的间隔,我目前正在使用此hack:

SELECT age(now() at time zone 'UTC', now());
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是有更简单的方法吗?

有一个名为"timezone"的服务器配置参数返回一个有效的时区字符串,但我认为不可能在查询中访问这些参数.(我想这是一个单独的问题,但是它的答案可以解决时区问题.)

postgresql timezone

33
推荐指数
2
解决办法
3万
查看次数