проверить наличие соответствующей записи в базе данных с помощью rails 3 - PullRequest
0 голосов
/ 08 сентября 2011

Мне нужна помощь в решении следующей проблемы.Я хотел бы внедрить текстовое поле в мое представление с помощью кнопки, которая проверяет совпадение строки в поле базы данных.

В частности, у меня есть таблица счетов с полем электронной почты.Я хотел бы сравнить пользовательский ввод в текстовом поле для всех учетных записей и вернуть true, если есть соответствующее электронное письмо, и false, если электронное письмо не совпадает.

Есть ли быстрый способ сделатьэтот?Я очень плохо знаком с рельсами, и до сих пор все, что у меня есть, это следующий код для представления:

  = text_field_tag :search
  = submit_tag "Check Email", :class => "submit"

Я не совсем уверен, что положить в модель или контроллер, но я написалследующий код и поместил его в модель account.rb:

  def email_exists?(search)
    return true if account.where(:email => "%#{search}%").exists?
  end

любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2011

Единственный способ общения с вашей моделью - через действия контроллера.

Единственный способ получить доступ к действиям контроллера - через http-запросы к вашим ресурсам.

Итак:

  1. Укажите действие на вашем контроллере для проверки писем
  2. Укажите метод проверки вашей электронной почты в вашей модели (это вы уже сделали)
  3. Укажите маршрут для доступа к действию на контроллере.
  4. Соедините поле отправки с маршрутом к действию вашего контроллера.

Обратите внимание, что если вы спросите у контроллера что-то, вам нужно будет отобразить html-ответ на это.

Полагаю, вы просто хотите уведомить пользователя, если электронная почта доступна. Для этого вам нужно будет сделать запрос AJAX. Применяются те же шаги.

0 голосов
/ 08 сентября 2011

Возможно, вы захотите использовать Account.find_by_email вместо того, чтобы делать все вручную, и возвращать пустые результаты?method.

Тем не менее, если это является частью процесса проверки, есть несколько способов сделать это - любой учебник по Rails будет иметь достаточно информации, чтобы начать работу, и вы сможетеизбегайте его значений по умолчанию вместо написания собственного кода (подумайте validates_uniqueness_of, с некоторыми оговорками).

...