ruby - 看不懂空白? Rails 对象上的行为

标签 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 的问题吗?

谢谢!

最佳答案

您对 acts_as_shopping_cart 的使用完全说明了问题

present? 被定义为与 blank? 相反。blank?被定义为对象是否非空,如果该对象有empty?` 方法或者对象是否为非零(参见定义 here )

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

关于ruby - 看不懂空白? Rails 对象上的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29557476/

相关文章:

ruby-on-rails - Rails has_and_belongs_to_many 集合方法未显示在对象上

javascript - 无法获取远程: true to work with link_to

ruby-on-rails - 按多个唯一字段查找 Rails

ruby - stub HTTP 请求的目的是什么(例如使用 WebMock gem)?

Ruby 简单 Web 服务客户端执行对 Solr 的调用

javascript - Dropzone 文件上传 Rails - 入门

ruby-on-rails - ActiveRecord View 与表(在 Rails 4 中)

ruby-on-rails - 尝试使用 Rails 和 PostgreSQL 生成模型时,命令挂起且没有错误

ruby-on-rails - "rake assets:precompile"给出 punc 错误

ruby-on-rails - 使用 rbenv 安装的 ruby​​ 上的段错误