2013-08-19 55 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