我在rails应用中有一个类似这样的方法:
def current_user
return @current_user if @current_user.present?
@current_user = current_user_session && current_user_session.record
end我以前没有使用过.present?方法,所以我进入了我的交互式ruby shell,尝试使用它。
每当我使用xxx.present?时,它都会返回一个NoMethodError。无论xxx是字符串、数字还是数组都无关紧要。
如何使用此方法?
发布于 2013-09-15 16:49:53
present是ActiveSupport提供的一种方法。它不是核心ruby的一部分。这就是你不能在ruby shell中使用它的原因。要使用它,您需要在控制台中提供相关的库(例如irb / pry):
require 'active_support'
require 'active_support/core_ext'这样,您就可以访问activesupport提供的所有实用程序方法。
发布于 2013-09-15 16:48:24
present是一种rails方法,而不是ruby。
尝试使用rails c而不是irb在控制台中使用它。
发布于 2013-09-15 17:35:50
如上所述,.present不在ruby标准库中。相反,它是在active_support (docs)中。
要使用active_support,首先要安装gem,然后在irb或ruby脚本中需要它。有关如何有选择地加载活动支持扩展的更多信息,可以在Rails guides中找到。
https://stackoverflow.com/questions/18810562
复制相似问题