2011-03-13 66 views
1

我用導軌3.0.5DRY方式對許多查詢

添加相同的條件下我已經UserCompany模型,用戶belongs_to一個Company

Product,Bill,其他幾個也是belongs_to a Company

出於顯而易見的原因,User可以作用於ProductBill ...只有當Product'sCompany是一樣的User'sCompany

我可以使用自定義作用域查詢在公司中添加所有條件,但它根本不是DRY。

你會怎麼做那個好方法?

感謝

回答

3
@product = current_user.company.products.find params[:id] 

應該工作。如果你想進一步乾燥,我建議使用插件InheritedResources,它有一個叫做begin_of_association_chain的甜美方法(請參閱自述文件中的覆蓋默認值),讓你可以在全局範圍內定義這些東西。

0

可以定義一個關聯

的has_many正是:產品:通過=>:公司

然後,你可以做

user.products.find(params [:id])

不知道這是否正確的做法!