我目前正在我们的用户数据库中实现一个搜索表单。我想通过id,通过登录或通过电子邮件进行搜索。
当然,我认为最好的方法是结合作用域并简化表单。所以我为:id_or_login_or_email_like添加了一个text_field。
当我在文本字段中输入一个数字时,一切都很正常。
但是,当我键入一个单词并按下搜索时,我键入的值将丢失,并替换为0(零),搜索结果将返回ID、名称或登录名为0的所有用户。
有什么办法解决这个问题吗?我使用的是Rails 2.3.2和SearchLogic 2.4.27。谢谢!
发布于 2011-02-01 23:52:09
不要紧,我找到了一个解决办法:当使用OR组合作用域时,将与整数值相关的作用域放在末尾。
所以不使用:id_or_login_or_email_like,而使用login_or_email_or_id_like。我已经通过github提交了这一期。
发布于 2011-02-01 12:15:34
我认为这是因为您的作用域是在与id进行比较时与整数进行比较,这会导致字符串被转换为0。尝试使用.dup确保传递给作用域的属性不会更改。
https://stackoverflow.com/questions/4857721
复制相似问题