美文网首页
2018-03-15

2018-03-15

作者: 见吾 | 来源:发表于2018-03-16 10:02 被阅读0次

整理一下前台向后台传送数据的思路。

比如采集用户个人信息,一般是用form表单实现。用户填写好form表单之后,通过submit提交。那这份数据要被提交到哪里去呢?

数据,理所当然是要被提交到数据库的。那这个过程是怎样实现的呢?

起点:view层的submit按钮;终点:database

view层submit(post)----route→→controller::create

view层的form表单使用post方法

控制器controller和模型model之间是如何传送数据的?

model有CRUD方法,controller也有CRUD方法,(controller中的CRUD里面的数据内容是让用户填写的,而model的CRUD方法是程序员自己测试程序能否跑通用的。)

model 和 controller 就是通过对应的CRUD来传输数据的。

例如,程序员自己测试的时候:rails c

用到create方法: User.create(name: "Jim", age: 16)

而在controller中,同样的用create方法:@user =User.create(name: params[:name], age:params[:age])

在这里用 params[:name] 代替了"Jim",params[:name]的位置就是让用户在form表单里面填写的。

params是个hash,hash{name: "Jim", age: 16},hash[:name]会将“Jim”提取出来,如同这里的params[:name]也将"Jim"提取了出来。

而view和controller传送数据,就是用RESTful方法找到对应的路径。在这里,用post方法,找到create方法。


上面有错的地方:@user = User.create(name: params[:name], age: params[:age])

这样写是得不到:name的值的,应该是params[:user][:name]

因为这个params是个hash套hash的结构

params=>{ “user” => {"name"=>"Jim", "age"=>"16"}}

相关文章

网友评论

      本文标题:2018-03-15

      本文链接:https://www.haomeiwen.com/subject/bylhqftx.html