私は次のコードを持っています:
require 'data_mapper'
class Dataset
include DataMapper::Resource
property :id, Serial
property :name, String, :required => true
property :year, String, :required => true
end
DataMapper.setup(:default, "sqlite://#{Dir.pwd}/database.db")
DataMapper.finalize.auto_upgrade!
Dataset.all(:year => nil).each do |dataset|
puts dataset.inspect
puts
end
year
プロパティが空のすべての行を検索したいと思います。しかし、このスクリプトを実行すると、空の出力が表示されます。私がそれを次のように実行すると:
Dataset.all(:year => "2005").each do |dataset|
puts dataset.inspect
puts
end
正しい出力が得られます:
#<Dataset @id=178 @name="Supernatural" @year="2005">
sqliteシェルでこのクエリを実行すると、空のyear
列を持つ7行が表示されます。
sqlite> SELECT COUNT(`name`) FROM datasets WHERE `year` IS NULL;
COUNT(`name`)
-------------
7
私は何が間違っているのですか?