ruby on rails
这一节我们来学习一下Rails的有效性验证。
在自动生成的APP/models/article.rb文件中,只有这么简短的一段代码:
|
这段代码说明Article这个model继承自ApplicationRecord。实际上,ApplicationRecord继承自ActiveRecord::Base,而ActiveRecord已经封装了许多model相关的操作,包括对数据库的CRUD,数据有效性验证,以及一些复杂的搜索支持。
除此之外,我们也可以通过在model文件中使用validates方法,编写一些自己定制化的有效性验证。将app/models/article.rb文件修改如下:
|
这段代码要求我们创建的article需要满足title的长度大于5,那么根据title的长度的不同我们应该做什么样不同的处理呢?这个时候我们就需要修改上一节我们写过的controller的代码,将app/controllers/articles_controller.rb文件修改如下:
|
controller的修改虽然显示根据title长度的不同,我们可以看到不同的页面,但是由于我们尚未对view进行修改,实际上我们此时看到的页面并没有什么不同。我们需要对app/views/articles/new.html.erb进行补充关于title判断的内容,修改如下:
|
我们使用@article.errors.any?对model中定义的验证条件进行检测,检查页面上是否存在错误;使用@article.errors.full_messages显示错误信息。
启动rails server后,访问 http://localhost:3000/articles/new,如果title不满足数据有效性条件的话,就会报错了。
备注:在上文中并没有强调把controller的new方法加入@article
= Article.
new这行代码,在直接访问时出现如下错误,因为nil并不存在errors方法。
相关阅读
https://www.lintcode.com/这个网站上面有一些关于算法的题,可以进行日常的练习。
HandlerThread是什么 官方解释 Handy class for starting a new thread that has a looper. The looper can then be used to cre
双系统我相信大家都不陌生这个词,而今天这篇文章主要要说的是双系统如何只卸载里面的一个系统。而且要保证文件不丢失,当然前提你要
首先你得知道是不是闰年,也就是一年是365还是366。 其次你得知道当年1月1号是周几。假如是周五,一年365天把1号 2号3号减去,也就是把
2018年全球智能音箱销量达到1.2亿台,其中中国市场销量达到2200万台。随着智能音箱的兴起,语音交互开始崛起,语音是最自然的交互形态