有没有像ILIKE这样的方法我可以在Rails条件语句中使用?

时间:2017-03-25 00:07:26

标签: ruby-on-rails ruby conditional ruby-on-rails-5

我想在包含字符串的情况下执行操作,不区分大小写,在另一个字符串中。

所以我的if语句看起来像这样:

@a = "search"
if @a ILIKE "fullSearch"
  #do stuff
end

3 个答案:

答案 0 :(得分:3)

您可以使用library(venneuler) library(rJava) tiff("Figure1_sWHI.tif", res=300, compression = "lzw", height=5, width=5, units="in") v = venneuler(c(A=16, B=16, C=16, 'A&B'=4, 'A&C'=5, 'B&C'=2, 'A&B&C'=1)) v$labels <- c("Comorbidity**", "Disability*", "Frailty***") plot(v) text(.50,.52,"6.8%", cex=.8) text(.50,.49,"n=13", cex=.7) text(.47,.6,"n=2", cex=.8) text(.47,.63,"1%", cex=.8) text(.63,.48,"59%", cex=.8) text(.63,.45,"n=112", cex=.8) text(.63,.7,"33%", cex=.8) text(.63,.67,"n=63", cex=.8) text(.50,.25,"n=1147", cex=.8) text(.4,.45,"n=30", cex=.8) text(.3,.63,"n=19", cex=.8) dev.off() 方法。所以在这种情况下:

include?

记住@var = 'Search' if var.include? 'ear' #action end 方法区分大小写。因此,如果您使用include?之类的内容,则会返回include? 'sea'。在致电false

之前,您可能需要downcase
include?()

希望有所帮助。

答案 1 :(得分:2)

您可以使用带有i选项的正则表达式。我认为i不敏感。

a = "fullSearch"
a =~ /search/i
 => 4 
a =~ /search/
 => nil 

或者你可以将你的字符串写下来并检查它是否存在于另一个

a = "fullSearch"
a.downcase.include?('search')
 => true

答案 2 :(得分:2)

有很多方法可以实现这一目标。这是三个:

'Foo'.downcase.include?('f') # => true
'Foo'.downcase['f'] # => "f"

the String documentation中记录了这些内容,如果你要用Ruby编程,你需要熟悉它们。

'Foo'[/f/i] # => "F"

这是String的[] slice快捷方式和正则表达式的混合。我建议前两个中的一个,因为它们更快,但为了彻底,我添加了它,因为人们喜欢用正则表达式锤击打东西。 Regexp包含/f/i的文档。

你会注意到他们会返回不同的东西。 Ruby将falsenil以外的任何内容视为真,AKA“真实性”,因此这三个都返回true值,因此您可以在条件测试中使用它们。