【问题标题】:how to transform a string object into an array in ruby on rails?如何将字符串对象转换为 ruby​​ on rails 中的数组?
【发布时间】: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


【解决方案1】:

你可以这样做:

EQ = ["5f17296e21ac387fc8ef0a57"]

或者在你的情况下:

EQ = [os.equipment_id.to_s]

【讨论】:

  • 当我收到字符串时,我收到 eq = os.equipament_id.to_s 。这种情况如何申请?
  • 使用eq_id = [os.equipment_id.to_s]将id放入数组中。
  • 非常感谢
猜你喜欢
  • 2017-01-13
  • 2017-09-12
  • 1970-01-01
  • 2014-06-21
  • 1970-01-01
  • 2020-09-30
  • 2019-11-29
  • 2014-05-14
  • 1970-01-01
相关资源
最近更新 更多