rails belongs_to使用NULL id的sql语句

时间:2012-07-05 09:13:05

标签: sql ruby-on-rails performance null

通过我们的Phrase表进行分页时,返回结果需要很长时间。

在sql日志中,我们看到许多对我们没有意义的sql请求:

Phrase Load (7.4ms)  SELECT "phrases".* FROM "phrases" WHERE "phrases"."id" IS NULL LIMIT 1
User Load (0.4ms)  SELECT "users".* FROM "users" WHERE "users"."id" IS NULL LIMIT 1

这些显着增加。有没有办法防止查询null id?

这是基础模型:

class Phrase < ActiveRecord::Base
  belongs_to :user 
  belongs_to :response, :class_name => "Phrase",  :foreign_key => "next_id"
end

1 个答案:

答案 0 :(得分:0)

在我们的案例中,罪魁祸首被证明隐藏在我们自己的代码中,即在太阳黑子块中,在保存/更新时被调用:

  searchable do
    integer :previous_ids, :multiple => true do
      previous.map { |previous| previous.id }
    end