代码之家  ›  专栏  ›  技术社区  ›  umar

如何在Rails中使用sphinx并基于列值排除结果

  •  2
  • umar  · 技术社区  · 16 年前

    我有一个简单的查询来显示活动的用户,但不知何故它仍然显示不活动的用户。我在用狮身人面像。查询如下:

    User.search keywords,:conditions=>conditions, :match_mode=>:boolean, :order =>sort_order.to_s, :page => page,:per_page =>per_page
    

    条件哈希如下所示:

    conditions = {:is_expired => false, :is_disabled => false,...}
    

    条件包括::is撊expired=>false,但它会获取那些具有:is撊expired=true的用户。

    我需要做什么才能使它只获取那些未过期的记录?

    3 回复  |  直到 16 年前
        1
  •  2
  •   Reuben Mallaby    16 年前
        2
  •  1
  •   allesklar    16 年前

    请确保索引已过期且禁用了方法。如果你已经道歉了。

        3
  •  1
  •   umar    16 年前

    我把列的类型从布尔值改为整数,它开始工作了!

    编辑:实际上它开始在本地工作,而不是在生产上。我最后查看了执行命令的输出 rails_env=生产耙思维:索引 看到一行字写着: 错误:索引“user_core”:未能创建/path/to/application/production/user_core.spm:权限被拒绝。

    然后我看到文件权限是“根目录”而不是运行index命令的用户。这是因为一旦部署人员进行了“sudo su-”等部署,并且创建的新文件以root作为creator等。我必须删除该文件,并在运行index命令后开始正常工作。不过,我不确定现在是否可以从整型列类型恢复为布尔型列。