2016-09-14 59 views
0

我有一个名为分配多态模型,通过owner_type属于两个任务项目,owner_id。导轨(4)通过动态命名范围多态模型

任务&项目的范围称为:即将到来:今天和:this_month。我正在尝试使用一个名为作用域的作用域来获取我需要的所有数据......但它并不工作。

在这个例子中,“时间线”承担责任:水灾等于“今天”,“THIS_MONTH”或“即将到来的”

查询将

Assignment.by_timeline("task", "this_month") 

这里是我的作业范围命名(Task.this_month适用于它自己):

 scope :by_timeline, lambda { |owner_type, timeline| 
     owner = owner_type.to_sym 
     owner_class = owner_type.camelize.constantize 
     set_scope = timeline.to_sym 
     scoped_owner = owner_class.timeline 

     joins(owner).merge(scoped_owner) 
    } 

它的工作原理,当我更换“owner_class.timeline”“与owner_class.this_month”,但我想动态设置在owner_type命名的范围。

回答