Ha sh условие, в котором метод Ruby на Rails - PullRequest
1 голос
/ 09 июля 2020

У меня проблема при попытке выполнить этот вызов:

 animals = pet_animals.where(
    :healthy => true,
    :owned => false,
    :bought <= bought_date
  )

Эта строка вызывает ошибки. :bought <= bought_date Как мне провести это сравнение?

1 Ответ

2 голосов
/ 09 июля 2020

Когда вы используете одну из последних версий Ruby и Ruby на Rails, вы можете использовать бесконечный диапазон для описания условия:

animals = pet_animals.where(
  healthy: true, owned: false, bought: (..bought_date)
)

Для версии для Ruby ниже Ruby 2.6 или более ранней версии Rails 6.0 вам необходимо использовать синтаксис массива для описания таких условий:

animals = pet_animals.where(healthy: true, owned: false)
                     .where("bought <= ?", bought_date)

Кстати, я перешел на более новый синтаксис ha sh, потому что в настоящее время он более распространен, чем старый ha sh rocket (=>) в таких случаях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...