Rog*_*ger 2 arel ruby-on-rails-3
如果填写日期(如,非空),你如何检查Rails3(有或没有Arel)?我知道你可以通过使用:
obj.where('PLANNED IS NOT NULL')
Run Code Online (Sandbox Code Playgroud)
但是没有使用SQL是可能的吗?
// SQL
SELECT * FROM projecttasks WHERE planned IS not null
Run Code Online (Sandbox Code Playgroud)
我试过了:
# all tasks which have a date
tasks = Projecttask.where(:planned => !nil)
Run Code Online (Sandbox Code Playgroud)
要么
# all task with no planned date (sql: is null)
Projecttask.where(:planned => nil)
Run Code Online (Sandbox Code Playgroud)
但这不起作用.一般来说,如何在NULL和NON NULL列上执行'where'.
谢谢.
Tho*_*emm 11
在Rails 3中: Projecttask.where('planned IS NOT NULL')
在Rails 4中,有一种新where.not方法.
Projecttask.where.not(planned: nil)
User.where.not(name: nil)
# SELECT * FROM users WHERE name IS NOT NULL
Run Code Online (Sandbox Code Playgroud)