Pergunta

Estou usando o Rails 3 e não consigo verificar se uma determinada instância está em um escopo, veja aqui:

p = Post.find 6
+----+----------+-------------------------+-------------------------+-------------------------+-----------+
| id | title    | publish_date            | created_at              | updated_at              | published |
+----+----------+-------------------------+-------------------------+-------------------------+-----------+
| 6  | asfdfdsa | 2010-03-28 22:33:00 UTC | 2010-03-28 22:33:46 UTC | 2010-03-28 22:33:46 UTC | true      |
+----+----------+-------------------------+-------------------------+-------------------------+-----------+

eu tenho um menu escopo que se parece:

scope :menu, where("published != ?", false).limit(4)

Quando eu corro, eu entendo:

Post.menu.all
+----+------------------+------------------+------------------+-------------------+-----------+
| id | title            | publish_date     | created_at       | updated_at        | published |
+----+------------------+------------------+------------------+-------------------+-----------+
| 1  | Lorem ipsum      | 2010-03-23 07... | 2010-03-23 07... | 2010-03-28 21:... | true      |
| 2  | fdasf            | 2010-03-28 21... | 2010-03-28 21... | 2010-03-28 21:... | true      |
| 3  |  Ruby’s Imple... | 2010-03-28 21... | 2010-03-28 21... | 2010-03-28 21:... | true      |
| 4  | dsaD             | 2010-03-28 22... | 2010-03-28 22... | 2010-03-28 22:... | true      |
+----+------------------+------------------+------------------+-------------------+-----------+

O que está correto, mas se eu tentar verificar se p está no menu escopo usando: Post.menu.exists?(p) eu recebo true Quando deveria ser false

Qual é a maneira correta de descobrir se uma determinada instância de algo está em um escopo?

Foi útil?

Solução

Na verdade, pude resolvê -lo usando esse método de matriz de include? ao invés de exists?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top