update_attributes(:a => [""])不应通过验证处理

时间:2015-09-12 01:16:52

标签: ruby-on-rails couchrest

我有以下代码,据我所知,它只处理a.blank?是真的。但是[" "。]空白?是假的。为什么它无法通过验证

class Demo < CouchRest::Model::Base
  collection_of :subdemos
  validate :ensure_subdemos

  def ensure_subdemos
    errors.add(:demo, "must include subdemos.") if subdemos.blank?
  end 
end

如果我demo.update_attributes(:subdemo_ids => [" "]),为什么它不能通过验证?谁能为我完成这个过程?

1 个答案:

答案 0 :(得分:1)

您需要使用实际ID。空格是空白的:

-> % rails c
Loading development environment (Rails 4.2.3)

Frame number: 0/5
[1] pry(main)> "     ".blank?
true
[2] pry(main)> 

如果你在那里添加数据,它应该通过验证:

demo.update_attributes(:subdemo_ids => [1,2,3])

如果要允许空格或空数组,请尝试:

def ensure_subdemos
  errors.add(:demo, "must include subdemos.") if subdemos.nil?
end