jay*_*ode 2 ruby ruby-on-rails
请查看下面的注释.为什么在我之前p variant_attributes,blank?方法返回错误,而在它之后,它工作正常?
Rails 3.0.3上的Ruby 1.9.2-p0
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
Run Code Online (Sandbox Code Playgroud)
如果variant_attributes是一种ActiveRecord记录集合(它看起来像),那么可能是因为rails使用延迟加载来从数据库中获取记录,但该blank?方法不会触发实际加载.
你可能想要打开all方法variant_attributes来手动触发加载,或者如果你不想这样做,你可能会去variant_attributes.count.zero?而不是variant_attributes.blank?
有关详细信息,请参阅Pratik Naik关于ActiveRecord 3.0查询界面的博文
| 归档时间: |
|
| 查看次数: |
2108 次 |
| 最近记录: |