2013-08-19 146 views
0

在我的rails应用程序中,我需要实现正则表达式来匹配任何位于文本开始,结尾和中间附近的字符串。那就是如果查询单词是“Gabbar Singh”,它应该匹配“Gabbar”或“Gabbar Singh”。我使用%%符号实现它。它的工作原理,但如果“Gabbar Singh”出现在单词的中间,它就不起作用。例如,如果一些文字可以“#GabbarSingh”,它不会显示特定的结果。Ruby on rails正则表达式

我的控制器代码行。

@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> 

代码。任何人都可以帮助我。

+2

它看起来像你想实现某种形式的全文搜索。看看一些像太阳黑子,狮身人面像等宝石。 – vee

+0

db是MySQL还是PostgreSQL? –

+0

数据库是mysql – user2492854

回答

0

你试过这样吗?

@tweets = Tweets.where( “tweet_text ILIKE?”, “%#{} SEARCH_TERM%”)

+0

你试过它没有工作 – user2492854

+0

如果你正在寻找像这样的“#GabbarSingh”,那么最好使用全文搜索,而不是使用基于%的喜欢。 – techvineet