2011-01-31 8 views
2

以下の注を確認してください。私がする前にそれはなぜですかp variant_attributesblank?メソッドはエラーを返しましたが、その後は正常に動作しますか?レールは、レコードをフェッチする遅延ロードを使用しているのでon Railsの未定義のメソッド '0'の場合... ActiveSupport :: OrderedHash

ルビー1.9.2-p0が3.0.3

p variant_attributes.blank? 
# => NoMethodError Exception: undefined method `zero?' for {"Brocade w/ Grande Stripe backing"=>3}:ActiveSupport::OrderedHash 
p variant_attributes 
# => [#<VariantAttribute id: 1251, variant_id: 561, product_option_id: 838, value: "Brocade w/ Grande Stripe backing">] 
p variant_attributes.blank? 
# => false 

答えて

7

variant_attributes場合は、(それがどのように見える)レコードのActiveRecordのコレクション、それはおそらくあるの一種でありますblank?メソッドは実際の読み込みをトリガーしません。

手動ロードをトリガするためにvariant_attributesallメソッドを呼び出したいことがあり、またはあなたがそれを行うにはしたくない場合は、あなたが詳細についてはPratik Naik's blog post about ActiveRecord 3.0クエリインターフェイスを参照してくださいvariant_attributes.blank?

の代わりにvariant_attributes.count.zero?のために行くこと

関連する問題