Ruby on rails 如何访问Ruby splat参数?
我已从我的设备gem中重写了Ruby on rails 如何访问Ruby splat参数?,ruby-on-rails,arrays,ruby,devise,splat,Ruby On Rails,Arrays,Ruby,Devise,Splat,我已从我的设备gem中重写了发送设备通知方法 我需要访问*args数组中的第一个元素,我假设这可以通过*args[0]实现 我需要一个字符串,但请查看下面奇怪的输出: 类用户 include Mongoid::Document 设计:可确认,:数据库\可验证,:可注册, :可恢复,:可记忆,:可跟踪,:可验证,:可锁定 受保护的 def发送设备通知(通知,*args) p*args.inspect#=>[“auNsGzsnpoQWtAk2Z1Tr”,{}] p*args[0]。检查#=>“auN
发送设备通知
方法
我需要访问*args
数组中的第一个元素,我假设这可以通过*args[0]
实现
我需要一个字符串,但请查看下面奇怪的输出:
类用户
include Mongoid::Document
设计:可确认,:数据库\可验证,:可注册,
:可恢复,:可记忆,:可跟踪,:可验证,:可锁定
受保护的
def发送设备通知(通知,*args)
p*args.inspect#=>[“auNsGzsnpoQWtAk2Z1Tr”,{}]
p*args[0]。检查#=>“auNsGzsnpoQWtAk2Z1Tr”
p*args[0].class.to#u.inspect#=>“字符串”
令牌=*args[0]
p token.inspect#=>[“auNsGzsnpoQWtAk2Z1Tr”]
p token.class.to#u.inspect#=>“数组”
结束
结束
当我记录它时,我看到一个字符串。但当我把它放入标记变量时,我看到了一个数组。我无法将变量转换为字符串。我尝试了token.to\u
等
知道发生了什么吗?您应该使用args
,它是一个数组:
def a(*args)
args.each {|e| puts "-- #{e}" }
end
a(1,2,3,4)
#-- 1
#-- 2
#-- 3
#-- 4
#=> [1, 2, 3, 4]
因此,如果要获取其第一个元素,请调用args[0]
或args.first
(不带前导星号)。可以使用args.first
获取第一个元素,因为*args
是一个数组。,您只能在方法定义和方法调用中使用一元*
运算符。您可以使用args.first来获取第一个元素@johnsmith1976 being*args是一个数组