我使用rails 3.0.5
我有User
和Company
个型号,用户belongs_to
和Company
。
Product
,Bill
,还有其他几个belongs_to
和Company
。
出于显而易见的原因,只有当User
Product
与Bill
Product's
相同时,Company
才能对User's
,Company
行事。 {1}} {{1}}。
我可以使用自定义范围查询为公司添加条件,但它根本不是DRY。
你会怎么做那个好方法?
由于
答案 0 :(得分:3)
@product = current_user.company.products.find params[:id]
应该有效。如果你想进一步干它,我建议使用插件InheritedResources,它有一个名为begin_of_association_chain
的甜蜜方法(请参阅README中的覆盖默认值),让你在全局定义这些东西。
答案 1 :(得分:0)
您是否查看了命名范围? http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html
似乎正是您正在寻找的
答案 2 :(得分:0)
您可以定义关联
has_many:products,:through => :公司
然后你可以做
user.products.find(PARAMS [:ID])
不确定这是否是正确的方法!