我正在使用 ruby 1.9.3p194 和 rails 3.2.5 当我做的时候
@authors = Author.all
通过从我的数据库输出所有名称,它工作正常。 但是
@authors = Author.where("name like ?", "%#{params[:q]}%")
不工作。我正在使用 MongoDB。我想在输入 R 时输出名称(Ram)。 可能的解决方案是什么?
通过这种方法,我可以仅通过我的字段 :name 搜索 params[:q]。我怎样才能添加其他字段名称,这样我也想在文本字段 :role , :email 中同时搜索这个 params[:q] ?我用过||但它给出了错误。 我必须在评论中写下这个,但因为我的评论列表很长。我在这里问这个问题。 对此感到抱歉。
最佳答案
MongoDB 不像在 SQL 中那样使用“LIKE”查询。 您(可以)使用正则表达式: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions
要解决您的特定问题,您可以使用
@authors = Author.where(name:/#{params[:q]}/)
,但我不确定这是否是安全问题。
关于ruby-on-rails - 使用 Rails 搜索 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12033934/