使用rails 3验证数据库中是否存在匹配条目

时间:2011-09-08 02:27:21

标签: mysql ruby-on-rails-3 search textfield

我需要一些有关以下问题的帮助。我想在我的视图中使用一个按钮来实现一个文本字段,该按钮用于检查数据库字段中的匹配字符串。

更具体地说,我有一个带有电子邮件字段的帐户表。我想在所有帐户的文本字段中比较用户输入,如果有匹配的电子邮件则返回true,如果电子邮件不匹配,则返回false

有快速的方法吗?我对rails很新,到目前为止,我只有以下代码视图:

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

我不确定要放入模型或控制器中的内容,但我编写了以下代码并将其放在accounts.rb模型中:

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

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可能希望使用Account.find_by_email而不是手动完成所有操作,并返回空的结果?方法

也就是说,如果这是验证过程的一部分,有很多方法可以解决它 - 任何Rails教程都有足够的信息可以帮助你入门,你也可以摆脱它的默认设置而不是编写自己的代码(想想validates_uniqueness_of,但有一些警告)。

答案 1 :(得分:0)

与模型进行通信的唯一方法是通过控制器操作。

访问控制器操作的唯一方法是通过资源上的http请求。

所以:

  1. 在您的控制器上提供操作以检查电子邮件
  2. 在您的模型上提供一种方法来验证电子邮件(您已经这样做了)
  3. 提供访问控制器上操作的路径
  4. 将提交字段与路径连接到控制器操作。
  5. 请注意,如果您向控制器询问某些内容,则需要将html响应呈现给此。

    我猜您只是想通知用户该电子邮件是否可用。为此,您需要发出AJAX请求。适用相同的步骤。