ruby-on-rails - 无法按名称和主键搜索

标签 ruby-on-rails rails-activerecord

以下查询根本不按 id(主键)进行搜索 - 它不断将 0 分配给 id,将 search_str 分配给 name。如果我们使用等于运算符而不是“id”的匹配,它会正确地执行此操作。以下范围是否存在问题。

scope :or_search, lambda {|name| where(arel_table[:name].matches("%{search_str}%").or(arel_table[:id].matches("%#{search_str}%")))

最佳答案

我对你想要做什么有点困惑,但首先

arel_table[:name].matches("%{search_str}%")

你缺少#,我认为这应该是

arel_table[:name].matches("%#{search_str}%")

其次,您没有在任何地方使用 name 参数,仅从这个角度来看,也许您想用 name 替换 search_str

关于ruby-on-rails - 无法按名称和主键搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14494591/

相关文章:

ruby-on-rails - 为什么我的 Rails API 没有将任何内容保存到数据库中?

ruby-on-rails - rails 错误 : Index name '...' on table '...' already exists while running rails db:migrate

ruby-on-rails - 没有列的事件管理索引页面排序

ruby-on-rails - 未定义的方法 `key?' 为 nil :NilClass

ruby-on-rails - Rails 包括按 has_many 关系的第一个关联排序

ruby-on-rails - Rails 3.1 Formtastic 输入自定义 id 或类

ruby-on-rails - 我想了解 Paperclip gem 如何处理 s3 停机时间

ruby-on-rails - 如何建立HABTM关系

javascript - ruby on rails 和 javascript 之间的时间转换反之亦然?

ruby-on-rails - Ruby on Rails 中的奇怪重定向