Hin*_*chy 22 ruby-on-rails mongodb mongoid ruby-on-rails-3.1
我正在尝试查找其文本中包含单词test的所有文档.以下工作正常:
@tweets = Tweet.any_of({ :text => /.*test.*/ })
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够搜索用户提供的字符串.我认为下面的内容可行,但不会:
searchterm = (params[:searchlogparams][:searchterm])
@tweets = Tweet.any_of({ :text => "/.*"+searchterm+".*/" })
Run Code Online (Sandbox Code Playgroud)
我已经尝试了我能想到的一切,任何人都知道我能做些什么来使这项工作.
提前致谢.
Nat*_*Nat 27
searchterm = (params[:searchlogparams][:searchterm])
@tweets = Tweet.any_of({ :text => Regexp.new ("/.*"+searchterm+".*/") })
Run Code Online (Sandbox Code Playgroud)
要么
searchterm = (params[:searchlogparams][:searchterm])
@tweets = Tweet.any_of({ :text => /.*#{searchterm}.*/ })
Run Code Online (Sandbox Code Playgroud)
Ram*_*Vel 15
mongodb正则表达式查询没有任何问题.问题是将变量传递给ruby regex字符串.您不能像普通字符串那样将字符串与正则表达式混合使用
代替
"/.*"+searchterm+".*/"
Run Code Online (Sandbox Code Playgroud)
试试这个
>>searchterm = "test"
>>"/#{searchterm}/"
>> "/test/"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16887 次 |
| 最近记录: |