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 に答える