关于在哪里放置方法查询两个模型的最佳实践

时间:2013-03-27 17:47:48

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

我编写了一个查询模型A的方法,并根据结果更新/创建模型B上的行。是否应将其添加到模型A或模型B中?

过去我一直在改变模型中放置方法,但不确定这是否是最好的方法。

1 个答案:

答案 0 :(得分:0)

为什么不将代码分成两部分,以便一个方法将获得ModelA的查询,另一个方法将创建/更新ModelB的属性,并从ModelA调用ModelB方法。

# ModelA
def method_in_model_a
  result = ModelA.where(....)
  ModelB.method_in_modelb(result)
end

# ModelB
def self.method_in_model_b(result)
  # code to create/update this model object
end