无法理解空白吗? rails对象上的行为

时间:2015-04-10 09:07:32

标签: ruby ruby-on-rails-4

我有一个用户对象:

@user = User.find(1)

如果我找到了用户,我只是想采取行动......

if @user.present?
  ...
end

开发环境(ruby 2.2.1):

@user.present?
# => true 

暂存环境(ruby 2.2.0):

@user.present?
# => false
@user.nil?
# => false
@user.empty?
# => true
@user.name
# => "Flo"

如果我能得到他的名字,我的用户怎么可能是空的?如果有人应该给我一个解释......这是ruby 2.2.0的问题吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

您对acts_as_shopping_cart的使用完全解释了问题

present?被定义为与blank?.空白?is defined as whether the object is non-empty, if the object has an空?方法相反,或者对象是否为非零(参见定义here)< / p>

此购物车gem在用户上定义了empty?方法,因此所有没有相关购物车商品的用户都开始将自己报告为空,因此不存在。

答案 1 :(得分:0)

好的伙计们,真的很抱歉...... 这不是红宝石问题(或者可能不完全)。

我安装了&#34; acts_as_shopping_cart&#34; gem(https://github.com/crowdint/acts_as_shopping_cart)和我的用户是购物车(购物车方面没有信息,全部都是购物车)。 当我删除&#34; acts_as_shopping_cart_using:cart_item&#34;从用户模型来看,一切正常......

很奇怪......我删除了这个宝石,开发了我自己的多态cartitem,这很好!

很抱歉,你没有回答所有要素...... 非常感谢你的帮助