【发布时间】:2014-02-12 18:23:22
【问题描述】:
我有一个 Department 父模型,它通过 has_many / belongs_to 关系与 Product 和 Document 模型相关联。然后Product 和Document 模型通过has_many :through 关系通过ProductDocuments 连接模型相互关联。
作为关联的一部分,要求Product 和Document 模型在相互关联时具有相同的Department 父模型。
现在我正在做以下事情:
ProductDocumentsController < ApplicationController
...
def create
@product = Product.find(params[:product_document][:product_id])
@document = Document.find(params[:product_document][:document_id])
if @product.department.id == @document.department.id
...
end
end
...
end
这行得通,但是感觉效率很低,因为它在控制器中引入了两个额外的数据库调用。
有谁知道可以通过模型验证以更有效的方式完成此任务的方法?
任何帮助将不胜感激;谢谢!
【问题讨论】:
-
“产品和文档模型在相互关联时具有相同的产品父模型”。你的意思是“同一个部门”?
-
@marvelousNinja 我确实做到了,谢谢您指出。
标签: ruby-on-rails ruby-on-rails-3.2 associations