1

据我了解,我有如下代码,它仅在 a.blank 时处理?是真的。但是 [" "].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 => [" "]),为什么它不能通过验证?谁能帮我完成这个过程??

4

1 回答 1

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 
于 2015-09-12T04:39:48.667 回答