Я хочу переместить следующий код в сторону от ActiveRecord до чистого SQL для повышения производительности. Каким будет лучший способ написать этот запрос в чистом SQL (MySQL DB)?
User.count(:conditions => ["email = ?",params[:email]]) > 0
Спасибо
Аналогично find_by_sql вы можете использовать count_by_sql:
User.count_by_sql(["SELECT COUNT(*) FROM users u WHERE u.email = ?", params[:email]]) > 0
Помните также использовать синтаксис ["... ? ...", var]
здесь для защиты от SQL-инъекции.
Однако я сомневаюсь, что вы можете добиться значительного улучшения производительности. Попробуй это. Если это не так, оставайтесь с версией ActiveRecord или попробуйте найти более подходящее решение для вашей проблемы.
Edit:
Если вы просто хотите проверить, содержит ли данное письмо в таблице, вы также можете проверить производительность User.find_by_email(params[:email]).present?
User.exists?(:email => params[:email])
если вы просто хотите посмотреть, присутствует ли уже пользователь. Это заботится о побеге автоматически.