gpt4 book ai didi

ruby-on-rails - Ruby:条件连接的简写?

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:31 25 4
gpt4 key购买 nike

<强>1。有没有更简单的方法来写这样的多个条件?

self.location = ""
self.location += geo["city"].to_s + ", " if geo["city"].present?
self.location += geo["regionName"].to_s + ", " if geo["regionName"].present?
self.location += geo["countryName"].to_s + ", " if geo["countryName"].present?

<强>2。并删除任何尾随逗号?

更新:下面是我尝试使用 Vee 解决方案的确切代码

geo = JSON.parse(open('http://www.geoplugin.net/json.gp?ip=127.0.0.1').read)
fields_to_select = ["geoplugin_city", "geoplugin_regionName", "geoplugin_countryName"]
location = geo.select { |elem| fields_to_select.include? elem }.values.compact.join(', ')

最佳答案

这应该有效:

self.location = geo.values_at('city', 'regionName', 'countryName').compact.join(', ')
  • values_at返回 'city''regionName''countryName' 的值(按此顺序)
  • compact删除 nil
  • join连接元素,将每个元素转换为字符串

由于您使用的是 Rails,您可以调用 reject(&:blank?) 而不是 compact 来删除 nil 值和空字符串。

关于ruby-on-rails - Ruby:条件连接的简写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20804479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com