Railsのmodelの検証で、
class Sample < ActiveRecord::Base
  belongs_to :hoge
  belongs_to :fuga
  attr_accessible :hoge, :fuga
  validates :hoge, :presence => true,
  validates :fuga, :presence => true, :uniqueness => {:scope => [:hoge]}
end
でRSpecのテストを通したところ、
undefined method `text?’ for nil:NilClass
というエラーが発生してしまった。
なんでやねん、と思っていたら、他のテストのところで、
PG::Error: ERROR:  column samples.fuga does not exist
と言われていた。
どうも:uniquenessを指定する場合は、validatesで指定するのはカラム名でないといけないようだ。
validates の:fugaを:fuga_id,:uniquenessのところも:hoge_idに修正したところ、テストが通った。
class Sample < ActiveRecord::Base
  belongs_to :hoge
  belongs_to :fuga
  attr_accessible :hoge, :fuga
  validates :hoge, :presence => true,
  validates :fuga_id, :presence => true, :uniqueness => {:scope => [:hoge_id]}
end
割と悩んでしまった。

