Ruby On Rails在模型中自我保存

ric*_*oni 2 ruby model ruby-on-rails self

我的模型中有一个函数,更改如下:

  def compare
        self.dirty = 1 if self.dirty == 0
        compare_recursive(0, MergeDigestTree.all)
        self.dirty = 0;
  end
Run Code Online (Sandbox Code Playgroud)

我是否必须打电话给self.save或者这样很好

tok*_*and 5

您的问题有两种解释:

  • 必须打电话才能self.save保存记录吗?是的,因为属性分配不会将更改提交到数据库.

  • 您是否有义务打电话self.save并保存记录?.一个方法可以改变实例,并决定是否实际保存它.我通常更喜欢这种行为,因为你给调用者更多的自由.

无论如何,相应地记录方法.