القضبان ، إذا كانت الحالة في نطاق؟
-
22-09-2019 - |
سؤال
أنا أستخدم Rails 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
ما هي الطريقة الصحيحة لمعرفة ما إذا كانت مثيل معين لشيء ما في النطاق؟
المحلول
في الواقع ، تمكنت من حلها باستخدام طريقة الصفيف هذه include?
بدلاً من exists?
لا تنتمي إلى StackOverflow