1

次のような肉食動物用の DataMapper スコープがあるとします。

class Animal
  #...
  def self.carnivores
    all(:diet => 'meat')
  end
  #...
end

関連付けのスコープでそのスコープを再利用できますか?

class Zoo
  #...
  def self.with_carnivores
    # Use `Animal.carnivores` scope to get zoos that have some?
    all(:animals => ???)
  end
  #...
end
4

1 に答える 1

1

これは、関連付けから「逆方向」に進むことで実行できます。

 class Zoo
  #...
  def self.with_carnivores
    # Assuming `Animal belongs_to :zoo`
    Animal.carnivores.zoo
  end
  #...
end

class Habitat
  #...
  def self.with_carnivores
    # Assuming `Animal has_many :habitats`
    Animal.carnivores.habitats
  end
  #...
end
于 2012-05-17T16:32:57.060 に答える