用 Navicat 建了个表 students
id INTEGER 0 0 非空 主键自增
name TEXT 0 0 非空
shuxue INTEGER 0 0 非空
然后>>rails generate scaffold Student 之后再生成的几个页面中我一点 Create Student 就显示
SQLite3::ConstraintException in StudentsController#create students.name may not be NULLRails.root: C:/Documents and Settings/Administrator/myweb
什么叫做我的 students.name 不一定为空啊?这 sqlite3 用着真头疼 还弄了个弱类型 我的 mysql 还连不上 我的环境只支持 mysql6.0 但是 6.0 相对太新还有 bug
求救 求救=。=
可我是直接点的 create student 这个按钮就提示错误了 而不是按完 create student 按钮再提交了个空表单再提示错误的-_-求解哟
就是 scaffold 的默认路由 没改过 :D 日志里有记录吗 下午我瞅瞅 sqlite 的数据类型太奇怪了 我想选 varchar 什么的还没有-_-
#2 楼 @douya0808 怎么会有 create student 按钮呢?想要获得输入数据的表单应该是在 /students 页面下点击 New Student 这个连接才对啊
我想起来了 我在/students 路径下点的 new student 然后转到了/student/new 在这个页面应该有个表单还有个 create student 按钮 但是我的程序里只有按钮没有表单 所以相当与提交的 null 所以报错?哎呀 我表单呢-_-
#12 楼 @douya0808 看一下 config/database.yml, 是不是你建表时用的数据库跟开发模式用的数据库不是同一个数据库
看了一下程序的各个模板发现傻眼了 有很多地方没有自动生成 不是说 scaffold 可以实现基本的增删改么 怎么又少东西了呢 我的是 rails 3.1.1 很是费解
rails new dummy
cd dummy
rails generate scaffold Student name:string shuxue:integer
rake db:migrate
我没有打相应的建表语句 我是先用可视化工具建的表 然后输入的 rails generate scaffold Student 但是却少东西了 甚是尴尬呀 哈哈