gpt4 book ai didi

ruby-on-rails - Ruby 重构包括?接受多个字符串

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

我有以下逻辑,如果为真,我将渲染部分内容。

@taxon.tag.present? && @taxon.tag.include?('shirts') || @taxon.tag.present? && @taxon.tag.include?('dibs')

我正在尝试以下行为:如果 taxon.tag 存在并且包括衬衫或 dibs

渲染我的部分。

我不喜欢重复代码太多。

我试过@taxon.tag.present? && %w(shirts dibs)include?(@taxon.canonical_tag) 不起作用,因为衬衫的标签是:“shirts/url/url” 如果它是“shirts”,它会起作用

什么是重构它的快速方法?

最佳答案

一种方法是

( (@taxon.tag || []) & ["shirts", "dibs"] ).present?

This可能会有帮助。

让我试着解释解决方案:

# @taxon.tag looks like an enumerable, but it could also be nil as you check it with
# .present? So to be safe, we do the following
(@taxon.tag || [])
# will guarentee to return an enumerable

# The & does an intersection of two arrays
# [1,2,3] & [3,4,5] will return 3
(@taxon.tag || []) & ["shirts, "dibs"]
# will return the common value, so if shirts and dibs are empty, will return empty

( (@taxon.tag || []) & ["shirts, "dibs"] ).present?
# should do what you set out to do

关于ruby-on-rails - Ruby 重构包括?接受多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26982423/

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