Rails, если экземпляр находится в области видимости?

StackOverflow https://stackoverflow.com/questions/2535838

  •  22-09-2019
  •  | 
  •  

Вопрос

Я использую рельсы 3 и не могу проверить, находится ли данный экземпляр в области видимости, см. здесь:

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      |
+----+----------+-------------------------+-------------------------+-------------------------+-----------+

у меня есть menu область видимости, которая выглядит так:

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

Когда я запускаю его, я получаю:

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      |
+----+------------------+------------------+------------------+-------------------+-----------+

Это правильно, но если я попытаюсь проверить, p находится в menu область применения: Post.menu.exists?(p) я получил true когда это должно быть false

Каков правильный способ узнать, находится ли данный экземпляр чего-либо в области видимости?

Это было полезно?

Решение

На самом деле, я смог решить эту проблему, используя метод Array include? вместо exists?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top