Rails sqlite3 的四种数据类型很困惑啊 页面总报错

douya0808 · 2012年03月29日 · 最后由 douya0808 回复于 2012年03月29日 · 3594 次阅读

用 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

求救 求救=。=

就是 name 不能为空阿,楼主的表不就解释了吗

可我是直接点的 create student 这个按钮就提示错误了 而不是按完 create student 按钮再提交了个空表单再提示错误的-_-求解哟

在 controller 把 params 打出来看看..确定一下 params[:student][:name] 的内容是什么...

一定是空的吧--因为我什么都没填甚至没看到表单就报错了--

一定是空的吧--因为我什么都没填甚至没看到表单就报错了--

手机上的没在电脑前 各位中午好^_^

#2 楼 @douya0808 create student 链接到哪了?看终端日志。

就是 scaffold 的默认路由 没改过 :D 日志里有记录吗 下午我瞅瞅 sqlite 的数据类型太奇怪了 我想选 varchar 什么的还没有-_-

#8 楼 @douya0808 用 migration 一般情况不用管具体数据库层是用什么类型

#2 楼 @douya0808 怎么会有 create student 按钮呢?想要获得输入数据的表单应该是在 /students 页面下点击 New Student 这个连接才对啊

对对对 就是 new student^_^求解 我看 sqlite 里没有 varchar 我就设的 text

我想起来了 我在/students 路径下点的 new student 然后转到了/student/new 在这个页面应该有个表单还有个 create student 按钮 但是我的程序里只有按钮没有表单 所以相当与提交的 null 所以报错?哎呀 我表单呢-_-

#12 楼 @douya0808 看一下 config/database.yml, 是不是你建表时用的数据库跟开发模式用的数据库不是同一个数据库

看了一下程序的各个模板发现傻眼了 有很多地方没有自动生成 不是说 scaffold 可以实现基本的增删改么 怎么又少东西了呢 我的是 rails 3.1.1 很是费解

#14 楼

rails new dummy
cd dummy
rails generate scaffold Student name:string shuxue:integer
rake db:migrate

我没有打相应的建表语句 我是先用可视化工具建的表 然后输入的 rails generate scaffold Student 但是却少东西了 甚是尴尬呀 哈哈

#16 楼 @douya0808 不知道你是在看什么资料学习的,建议你看一下 Wiki,里面有大牛写的关于学习路线的文章

@IchiNiNiIchi 英文的教程呀 狠透啦

需要 登录 后方可回复, 如果你还没有账号请 注册新账号