使用Ruby On Rails建立一个山寨小说站(二)

最近刚做好一个站,rails 3,大家捧场看看,谢谢!www.yo945.com

公司今年放假挺早,今天是第一天,反正闲着没事,就继续学习,继续记录吧

上一篇里面,页面终于显示出来了,而且已经自动加上了一个功能,添加新书,试着点击一下吧……没有相像中的添加新书界面,倒是又出错了……这次的原因是“update is defined by ActiveRecord“,update已经被ActiveRecord定义过了?!我什么时候定义过update啊?根本连代码都没写几行啊?仔细想了一下,似乎Book类里面有个update,用来保存小说的更新日期。一想到这个,简直想拍自己一下,update不说别的,首先就是SQL的关键字了,居然用来定义作字段名……BS自己一下。

问题既然找到了,那就好办,建立一个数据迁移任务,名称就叫rename_column

image

运行后,会在db/migrat下面,新建立一个任务:rename_column,打开后写入:

image

再执行rake db:migrate就OK了

终于,添加新书的界面出来了,不过,怎么什么内容都没有?

分析一下,一开始执行Scaffold的时候,book表还没有建立 ,自动生成的的view里面,自然是一个字段都没有了。手动加上就是,反正自动生成的界面根本就不能看,最后还是要写过的。

那么,建立一本新书,我们需要哪些字段呢?书名,作者,类型是需要我们手动输出的,至于字数等数字内容,就应该在更新小说时或读者点击推荐时,动态增加,所以,建立新书页面上,有三项即可。

image

刷新后,效果出来了

image

试着添加一本看,显示成功。

基于和以上一样的原因,列表页,修改页等,都没有显示内容,加上类似的代码即可。

新建一本小说后,突然发现类型没有信息,至于原因,和update一样。再次新建一个迁移任务,把type改为book_type,终于正常了。

image

-----------------------------------------------------------------------

连续两次都在数据库上出现了问题,让我对数据库格外关注了一分,自动生成的表,还会不会存在问题呢?还是看一下吧,打开Sqlite数据库,可以用Sqlite Administrator,挺好用的程序,还是绿色的。打开位于/db下的开发数据库,有点晕了

image

没有默认值,标题等字段,太长了,居然有255,没办法,继续改(当然,产生这些情况的原因,是因为我没有在建立表的时候配置好)

image

修改好后,就好了

不过我还是不知道怎么去设置DateTime型的默认值,试了:CURRENT_DATE,’CURENT_DATE’都不行,DateTime.now值倒是设置进去了,可惜是个定死的日

期,不能变化

原文地址:https://www.cnblogs.com/varlxj/p/1662165.html