【问题标题】:Ruby on rails regular expression [duplicate]Ruby on rails 正则表达式 [重复]
【发布时间】:2013-08-19 05:49:25
【问题描述】:

在我的 Rails 应用程序中,我需要实现正则表达式以匹配文本开头、结尾和中间位置附近的任何位置的字符串。也就是说,如果查询词是“Gabbar Singh”,它应该匹配“Gabbar”或“Gabbar Singh”。我使用 % % 符号实现了它。它可以工作,但如果“Gabbar Singh”出现在单词中间,它就不起作用。例如,如果某些文本包含“#GabbarSingh”,则它不会显示该特定结果。

我的控制器代码行。

@tweets = Tweets.where("tweet_text LIKE?", "%#{search_term}%")

我的视图代码

<% @tweets.each do |tweets| %>

<ul>

  <li><%= tweets.id %></li>
  <li><%= tweets.tweet_created_at %></li>

  <li><%= tweets.tweet_source %></li>
  <li><%= tweets.tweet_text %></li>
  <li><%= tweets.user_id %></li>
  <li><%= tweets.user_name %></li>
  <li><%= tweets.user_sc_name %></li>
<li><%= tweets.user_loc %></li>
  <li><%= tweets.user_img %></li>
  <li><%= tweets.longitude %></li>
  <li><%= tweets.latitude %></li>
<li><%= tweets.place %></li>
  <li><%= tweets.country %></li>


<% end %>
</ul>

我希望我的结果与字符串或单词中间包含“Gabbar Singh”的任何内容相匹配。任何人都可以帮我解决这个问题。

【问题讨论】:

  • 您似乎想要实现某种全文搜索。看看一些宝石,如太阳黑子、狮身人面像等。
  • 数据库是 MySQL 还是 PostgreSQL?
  • 数据库是mysql

标签: ruby-on-rails ruby


【解决方案1】:

你试过这样吗?

@tweets = Tweets.where("tweet_text ILIKE ?", "%#{search_term}%")

【讨论】:

  • 你试过它没有成功
  • 如果您要搜索类似“#GabbarSingh”的内容,那么最好使用全文搜索而不是使用基于百分比的喜欢。
猜你喜欢
  • 2012-10-23
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
相关资源
最近更新 更多