Rails4:如何防止新动作导致缓存

时间:2016-10-06 03:19:42

标签: ruby-on-rails

型号:
材料有很多表达
快递属于材料

expressesController.rb

def index
    @express = @material.expresses.new
    @expresses = @material.expresses
end

@express = @material.expresses.new会导致缓存

  

CACHE(0.0ms)SELECT"表达"。* FROM"表达"哪里   "表示"" material_id" =? [[" material_id",2]]

这会导致表达式表总是有一个额外的空行。

我该如何解决这个问题?

===========================================
编辑:
当我将@expresses = @material.expresses转为@expresses = @material.expresses.all时,这就解决了问题 为什么会这样?

1 个答案:

答案 0 :(得分:0)

@material.expresses.new@material.expresses.build的别名。这样您就可以创建Express的新实例并将其添加到关联@material.expresses我认为这是您的空行的原因。这是目前创建的快递记录。也许你想要这个:

def index
  @express = Express.new(material: @material)
  @expresses = @material.expresses
end