Ruby on rails 如何检查变量在rails中是否有可用的映射?换句话说,如果一个变量是可映射的?
我正在尝试处理一个遗留方法,该方法接受一个变量并将变量.amount.to_返回。但是现在经过一些更改,变量也可以是活动记录关系 我基本上希望能够做这样的事情: def方法变量 变量是否有映射? variable.map{| v | v.amount.to_f}.reduce:+ 变量.tos 其他的 可变金额 终止 终止Ruby on rails 如何检查变量在rails中是否有可用的映射?换句话说,如果一个变量是可映射的?,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我正在尝试处理一个遗留方法,该方法接受一个变量并将变量.amount.to_返回。但是现在经过一些更改,变量也可以是活动记录关系 我基本上希望能够做这样的事情: def方法变量 变量是否有映射? variable.map{| v | v.amount.to_f}.reduce:+ 变量.tos 其他的 可变金额 终止 终止 但我不知道如果情况是这样的话会怎么样 您可以使用直接测试方法 或者您可以检查它是否提供了用于迭代的一大套方法,包括 Enumerable的优点是它告诉您更多关于对象的信息,并
但我不知道如果情况是这样的话会怎么样 您可以使用直接测试方法 或者您可以检查它是否提供了用于迭代的一大套方法,包括
Enumerable的优点是它告诉您更多关于对象的信息,并且您可以更确定它的映射是您期望的映射,而不仅仅是某个碰巧命名为map的方法。缺点是它将错过任何不可枚举但实现了适用映射的内容;我想不出哪种情况会发生这种情况。您可以使用直接测试方法 或者您可以检查它是否提供了用于迭代的一大套方法,包括 Enumerable的优点是它告诉您更多关于对象的信息,并且您可以更确定它的映射是您期望的映射,而不仅仅是某个碰巧命名为map的方法。缺点是它将错过任何不可枚举但实现了适用映射的内容;我想不出会发生这种情况。谢谢!变量。是吗?可枚举正是我想要的。谢谢!变量。是吗?可枚举性正是我想要的。
if variable.respond_to?(:map)
if variable.is_a?(Enumerable)