Searchlogic:将范围与OR组合时的奇怪行为

时间:2011-02-01 00:31:05

标签: ruby-on-rails rubygems ruby-on-rails-plugins searchlogic

我目前正在用户数据库中实施搜索表单。我想通过身份证,登录或电子邮件进行搜索。

当然,我认为最好的方法是结合范围并简化表格。所以我为:id_or_login_or_email_like添加了一个text_field。

当我在文本字段中键入数字时,一切正常。

但是,当我输入一个单词并按搜索时,我键入的值将被丢失并替换为0(零),搜索结果将返回ID,名称或登录名中包含0的所有用户。

有关如何解决此问题的任何想法?我正在使用Rails 2.3.2和SearchLogic 2.4.27。 谢谢!

2 个答案:

答案 0 :(得分:1)

我认为这是因为你的范围是在与id比较时对整数进行比较,这会导致你的字符串转换为0.尝试使用.dup来确保传递给范围的属性不会改变。 / p>

答案 1 :(得分:1)

没关系,我找到了一种解决方法:将范围与OR组合时,将范围与整数值相关联。

而不是:id_or_login_or_email_like使用login_or_email_or_id_like。我已通过github提交了此问题。