如果我想避免n加一个问题,我该如何编码?

时间:2013-07-18 01:12:24

标签: ruby-on-rails ruby-on-rails-3

我有这3个模型

  • 学生
  • 性别
  • 血型

学生有这三个模型,如Gender,BloodType,Prefecture。 他们每个人都属于学生。

已在每个模型文件中设置关联。

在这种情况下,如果我想避免N + 1问题,我该如何编码?

是这样的吗?

@students = Student.find(:all).includes.includes(:gender, :blood_type, :prefecture)

1 个答案:

答案 0 :(得分:3)

您只需要.includes一次,并且您可以摆脱find(:all),因为Rails 3不需要它。

students = Student.includes(:gender, :blood_type, :prefecture)

话虽如此,看起来这些只是查找表格,如果您担心性能问题,我建议您查看我的gem ClassyEnum作为潜在替代品。