通过Ajax调用验证字段唯一性,并在Rails 3中使用适当的消息

时间:2012-03-14 13:44:44

标签: ajax ruby-on-rails-3 validation jquery unique

我正在尝试执行 Rails + AJAX 调用验证以检查字段的唯一性,方法是抓取后端数据库并返回基于的相应消息结果。

我在Rails 3.0.11上。

您对可能是解决这个问题的最佳方式的意见很有帮助。

我可以使用ruby gem / js插件/ jquery插件吗?

实现相同的博客链接也很方便..

谢谢。

2 个答案:

答案 0 :(得分:2)

为什么不像在常规页面请求中那样创建模型验证,通过控制器中的JSON发回验证消息?例如,如果您想在没有唯一电子邮件的情况下阻止“联系人”保存,请在contact.rb中添加

  validates :email, :uniqueness => true

并且在你的控制器的create方法中,你可以做一些像Rails脚手架生成器那样的东西:

# POST /contacts
# POST /contacts.json
def create
  @contact = Contact.new(params[:contact])

  respond_to do |format|
    if @contact.save
      format.html { redirect_to @contact, notice: 'Contact was successfully created.' }
      format.json { render json: @contact, status: :created, location: @contact }
    else
      format.html { render action: "new" }
      format.json { render json: @contact.errors, status: :unprocessable_entity }
    end
  end
end

然后,您的javascript会测试status并做出相应的回复。

(注意:这是Rails 3.2脚手架生成器创建的,3.0我仍然认为format.xml。我认为除了这种改变之外没有任何重大区别。)

答案 1 :(得分:0)

您可能需要查看客户端验证Gem。

有一个很好的轨道广播 http://railscasts.com/episodes/263-client-side-validations