簡體   English   中英

Rails 4在多態模型上傳遞動態命名范圍

[英]Rails 4 Passing in dynamic named scopes on polymorphic models

我有一個名為Assignment的多態模型,該模型通過owner_type,owner_id屬於TaskItem

Task&Item的作用域稱為:upcoming和:today和: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.this_month替換“ owner_class.timeline”“,但我想動態設置owner_type的命名范圍時,它可以工作。

我最終這樣做:

scoped_owner = owner_class.send("#{timeline}")

我用了發送

所有信用都歸這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM