如何在Ruby on Rails 3中搜索Active Record的文本?

nev*_*ame 5 ruby-on-rails

如何在Ruby on Rails中搜索字符串?

例如,包含"text"的列的所有记录.

Active Record是否有方法或者我必须使用SQL"LIKE"吗?

Moh*_*ain 11

 Model.find(:all, :conditions => ['name LIKE ?', "%#{tag}%"])
Run Code Online (Sandbox Code Playgroud)

其中tag是包含字符串的变量

根据@bjg评论: -

或者在Rails 3中你就是这样写的

  Model.where(["name LIKE :tag", {:tag => tag}]) 
Run Code Online (Sandbox Code Playgroud)

使用新的finder语法 -

  • 或者在Rails 3中,你将它写为`Model.where(["name LIKE:tag",{:tag => tag}])``使用新的finder语法 (2认同)

ska*_*lee 8

like在某些情况下,Sql 可能效率很低,例如在MySQL中很多情况下.我建议使用一些全文索引软件,如Sphinx,Xapian或Lucene.