【发布时间】:2021-03-25 13:58:55
【问题描述】:
如何将字符串对象转换为数组?
在我的代码中,我可以接收一个数组。
示例:
Eq = ["5f17283521ac387fc8eeca6a", "5f17283c21ac387fc8eecb78", "5f17285621ac387fc8eed109", "5f17286321ac387fc8eed3ca", "5f17286621ac387fc8eed433", "5f17286d21ac387fc8eed5c8", "5f17287221ac387fc8eed6c7", "5f17288621ac387fc8eeda69", "5f17288921ac387fc8eedb1d", "5f17289421ac387fc8eedd39", "5f17289521ac387fc8eedd93", "5f17289821ac387fc8eeddfc", "5f17296e21ac387fc8ef0a57"]
我也可以简单地接收一个标识字符串。
示例:
Eq = "5f17296e21ac387fc8ef0a57"
如何将这个字符串转换成数组?
consulta_OS.each do |os|
if os.equipment.map(&:to_s) != []
eq_id = os.equipment_ids.map(&:to_s) #equipment_ids receive in array else
eq_id = os.equipment_id.to_s #equipment_id in string
end
end
【问题讨论】:
-
如果对象可以是字符串或数组,你可以使用 Rails 的
Array.wrap(string_or_array)——它将参数包装在数组中,除非它已经是数组。 -
顺便说一句,许多 Active Record 方法很乐意同时接受:id 和 id 数组。所以可能没有必要首先转换它(取决于你想要做什么)
-
@Stefan
Kernel#Array也可以方便地将nil映射到[]。一个被低估的工具,应该在每个人的工具箱中。
标签: ruby-on-rails ruby ruby-on-rails-5