zoukankan      html  css  js  c++  java
  • 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 onclick="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里将一个表单项也没有。

  • 相关阅读:
    fitnesse的安装
    elasticsearh 迁移
    网络基础之 二层三层网络通讯
    ansible 基本使用之3 palybook
    ansible-基本使用-2
    ansible 基本使用-1
    k8s 机器搭建之etcd
    http 状态码之3xx
    mysql 主从相关
    redis 主从及哨兵模式
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426886.html
Copyright © 2011-2022 走看看