rails学习笔记(6)

   rails2.x中的scaffold脚手架生成的页面中,delete那里已经不再是用botton_to方法了,生成的不再是一个form表单,而是一个普通的a标签。但rails的作者DHH非常反对对delete操作使用get的方法提交参数,他还是推荐用表单提交的方式处理delete,所以他做了件很bt的事,给delete的那个a标签监听click事件,然后用js生成一个表单提交。也就是说,他还是通过表单提交的delete,只是不通过html显式地这么做,而是通过javascript。。。

    看看这个变态的a标签吧:

================================

<a οnclick="if (confirm('Are you sure?')) { var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', 'delete'); f.appendChild(m);var s = document.createElement('input'); s.setAttribute('type', 'hidden'); s.setAttribute('name', 'authenticity_token'); s.setAttribute('value', '6o2LD8EdrS7QGLPLdtvQNhC9hjw5ODIjM1ajNr9yx2Q='); f.appendChild(s);f.submit(); };return false;" href="/publishers/2">Destroy</a>

================================

在rails1.x里,脚手架的格式是ruby script/genrate scaffold modelName controllerName action1 action2

控制器的名字是由我们指定的,另外还可以指定action名。到了rails2.x,脚手架的格式是ruby script/generate scaffold modeName a:string, b:string

控制器名称不能指定,会自动生成和模型名相对的controller名。需要注意的是rails2.x 后面接的a:string, b:string,这里a和b是对应的数据库中表的字段名,在1.x里,自动生成的view会将数据库中的字段自动放到view里,形成表单项,而2.x中view生成哪些表单项是需要我们给脚手架传参时指定,如果不指定的话,那么生成的view里将一个表单项也没有。

转载于:https://www.cnblogs.com/cly84920/archive/2009/12/31/4426886.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值