Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 查询两个模型的方法放置位置的最佳实践_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.1 - Fatal编程技术网

Ruby on rails 查询两个模型的方法放置位置的最佳实践

Ruby on rails 查询两个模型的方法放置位置的最佳实践,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我编写了一个查询模型a的方法,并根据结果更新/创建模型B上的行。这应该添加到模型a还是模型B 在过去,我一直在将方法放置在正在更改的模型中,但是我不确定这是否是最好的方法 为什么不将代码分成两部分,这样一个方法将获得ModelA的查询,另一个方法将创建/更新ModelB的属性,并从ModelA调用ModelB方法 # ModelA def method_in_model_a result = ModelA.where(....) ModelB.method_in_modelb(resul

我编写了一个查询模型a的方法,并根据结果更新/创建模型B上的行。这应该添加到模型a还是模型B


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

为什么不将代码分成两部分,这样一个方法将获得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