我正在尝试执行 Rails + AJAX 调用验证以检查字段的唯一性,方法是抓取后端数据库并返回基于的相应消息结果。
我在Rails 3.0.11上。
您对可能是解决这个问题的最佳方式的意见很有帮助。
我可以使用ruby gem / js插件/ jquery插件吗?
实现相同的博客链接也很方便..
谢谢。
答案 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