2016-01-14 4 views
0

Я устанавливаю драгоценный камень ransack на мое приложение рельсов (4.1.8). Однако, когда я выполняю поиск, он просто возвращает все объекты. Вот что это произойдет в консоли рельсы:Почему обыск не ищет?

AdminUser.ransack({email: "keyword"}).result.to_sql 
=> "SELECT \"admin_users\".* FROM \"admin_users\"" 

Предложение SQL будет возвращать только все AdminUser из базы данных. Может ли кто-нибудь помочь мне с обычным делом?

+0

Попробуйте читать их [вики] (https://github.com/activerecord-hackery/ransack/wiki/Basic-Searching) –

+2

Возможно, вы захотите добавить в свой запрос email_eq или email_cont. –

+0

@ j-dexx, спасибо большое, я пропустил ** предикаты ** внутри моего хэша! –

ответ

0

Чтобы закончить комментарий @ j-dexx, решение переходит к любому из available predicates после имени столбца.

Например, если вы хотите сделать точный поиск матча, вы бы использовать eq предикат:

AdminUser.ransack(email_eq: 'keyword').result.to_sql 
=> "SELECT `admin_users`.* FROM `admin_users` 
    WHERE `admin_users`.`email` = 'keyword'" 
Смежные вопросы