我可以在 Rails 条件语句中使用像 "ILIKE" 这样的方法吗?
Is there a method like "ILIKE" I can use in a Rails conditional statement?
如果一个字符串包含在另一个字符串中(不区分大小写),我想执行一个操作。
所以我的 if 语句看起来像这样:
@a = "search"
if @a ILIKE "fullSearch"
#do stuff
end
您可以使用带 i
选项的正则表达式。 i
我觉得麻木不仁。
a = "fullSearch"
a =~ /search/i
=> 4
a =~ /search/
=> nil
或者您可以将字符串小写并检查它是否存在于另一个字符串中
a = "fullSearch"
a.downcase.include?('search')
=> true
有很多方法可以到达那里。这是三个:
'Foo'.downcase.include?('f') # => true
'Foo'.downcase['f'] # => "f"
这些记录在 the String documentation 中,如果您要在 Ruby 中编程,您需要非常熟悉这些内容。
'Foo'[/f/i] # => "F"
这是 String 的 []
slice
快捷方式和正则表达式的混合体。我推荐前两个中的一个,因为它们速度更快,但为了彻底起见,我添加了它,因为人们喜欢用正则表达式锤子敲打东西。 Regexp 包含 /f/i
.
的文档
您会注意到它们 return 不同。 Ruby 将除 false
或 nil
以外的任何东西都视为真,又名 "truthiness",所以这三个都是 returning 一个 true
值,并且,因此,您可以在条件测试中使用它们。
您可以使用include?
方法。所以在这种情况下:
@var = 'Search'
if var.include? 'ear'
#action
end
记住include?
方法是区分大小写的。因此,如果您使用 include? 'sea'
之类的内容,它将 return false
。您可能想在调用 include?()
之前执行 downcase
@var = 'Search'
if var.downcase.include? 'sea'
#action
end
希望对您有所帮助。
如果一个字符串包含在另一个字符串中(不区分大小写),我想执行一个操作。
所以我的 if 语句看起来像这样:
@a = "search"
if @a ILIKE "fullSearch"
#do stuff
end
您可以使用带 i
选项的正则表达式。 i
我觉得麻木不仁。
a = "fullSearch"
a =~ /search/i
=> 4
a =~ /search/
=> nil
或者您可以将字符串小写并检查它是否存在于另一个字符串中
a = "fullSearch"
a.downcase.include?('search')
=> true
有很多方法可以到达那里。这是三个:
'Foo'.downcase.include?('f') # => true
'Foo'.downcase['f'] # => "f"
这些记录在 the String documentation 中,如果您要在 Ruby 中编程,您需要非常熟悉这些内容。
'Foo'[/f/i] # => "F"
这是 String 的 []
slice
快捷方式和正则表达式的混合体。我推荐前两个中的一个,因为它们速度更快,但为了彻底起见,我添加了它,因为人们喜欢用正则表达式锤子敲打东西。 Regexp 包含 /f/i
.
您会注意到它们 return 不同。 Ruby 将除 false
或 nil
以外的任何东西都视为真,又名 "truthiness",所以这三个都是 returning 一个 true
值,并且,因此,您可以在条件测试中使用它们。
您可以使用include?
方法。所以在这种情况下:
@var = 'Search'
if var.include? 'ear'
#action
end
记住include?
方法是区分大小写的。因此,如果您使用 include? 'sea'
之类的内容,它将 return false
。您可能想在调用 include?()
downcase
@var = 'Search'
if var.downcase.include? 'sea'
#action
end
希望对您有所帮助。