用 select_tag 当制定选项时用 options_for_select (数组,默认选定值)
界面元素除了 onclick 等事件属性一旦在界面上定义后就不能在 javascript 中修改,而其他 html 属性则可修改
Select 的默认值设置为 在想要设置为默认值的 option 中加入 selected= “ true ”
当页面减少数据后可根据控制器中原来的数量减去页面传回来的数据来得到较少的数据
在 javascript 中引用控制器传来的数据时 应用引号把 <%= %> 包起来才能用
在 javascript 中使用 for 循环
for(var i=0;i<document.all.radiobutton.length;i++){
if(document.all.radiobutton[i].status){
recieve = document.all.radiobutton[i].value;
break;
}
}
javascript 同时也可以嵌套在 ruby 中的 for ..in … 循环中
在下层浮动的块级元素定义宽度,在他上面建立非浮动的块级元素则可以使用 margin:0 auto;
注意可以使用 margin:0 auto; 样式的块级元素一定不能让他浮动起来,否则无效
若块级元素浮动起来后宽度不够则后面的块级元素将排列在上一个的下面而不是上一个的后面
request.post? 判断在控制器中该控制器是否为 post , form_for 默认情况是 post ,所以经常用来判断是否有 form_for 返回到控制器
在循环中指定跳转 redirect_to 时需要在前面加入 return ,否则 server 就崩溃了
初始化数组 xxx=[] 初始化哈希 xxx={}
数组中可以 << 任意类型的值
时间类型可以直接进行进行对比
Javascipt 通过 window.location…(url) 将跳转到制定的网址
Ruby 中 randor 不经过 application ,而 redirect_to 叫经过
%w() 括号内放入加空格的值则将形成字符串数组
eEdit 中选择 view 中的 word wrap 选择 none 则是不自动换行
e 中 Ctrl+f 选择他里面选项的第一项则是将字符转移如 \n 等换行
form 表单中的 enctype="multipart/form-data" 的属性:将数据分段上传(作用于比较大的数据),并且以二进制方式上传,没有指明的则以 ACICAL 码上传
在 rails 环境中 RAILS_ROOT 指定的是当前路径
redirect_to 与 render 的区别在于 redirect_to 走控制器;而 render 直接渲染 action 对应的界面,这里应当为 render 渲染的界面准备好数据,因为 render 不走控制器
action 中的 render
render (:text => "hello world!")
将响应字符串
render (:inline => string, [:type => "rhtml"|"rxml"])
把传入的 string 渲染成模板( rhtml 或者 rxml )
render (:action => action_name)
直接调用某个 action 的模板,相当于 forward 到一个 view
render (:file=>’/sss/sss.erb’, [:use_full_path => true|false])
使用某个模板文件 render, 当 use_full_path 参数为 true 时可以传入相对路径
render(:template => name)
使用模板名 render ,例如 : render(:template => "blog/short_list")
render(:partial => name)
以局部模板渲染
render :json=>{ 其中输入 hash 值 }
将响应以 json 形式响应客户端 , 响应的格式为 json 的字符串形式,所以要转化为 json 对象, eval(‘(’+ 接受响应的变量 +’)’) 将得到实际的 json 对象
render :xml => {:name => "David"}.to_xml
将转换成 xml 的形式
render(:nothing=>true)
什么也不输出 , 包括 layout
render()
默认的的 render, 相当于 render(:action => self)
input 的 name 值可以为 xxx[] 的形式,这样控制器将收到 params[xxx] 的数组
若把某一元素放到表格 td 的外部将导致此元素位置不为开发时位置一样,大多数情况下浏览器会把他解析到 table 的外部
Json 的格式:
x=[{" 城市 ":" 北京 "," 面积 ":16800," 人口 ":1600},{" 城市 ":" 上海 "," 面积 ":6400," 人口 ":1800}]
1 并列的数据之间用逗号( “ , ” )分隔。
2 映射用冒号( “ : ” )表示。
3 并列数据的集合(数组)用方括号 ("[]") 表示
4 映射的集合(对象)用大括号( “{}” )表示。
5 数组元素的引用格式 x[0]
5 对象属性的引用格式 x[0][“ 城市 ”]
例如:这个数组中包含 2 个对象,每个对象分别有城市,面积,人口属性
注意:数组表示有序的集合,对象表示无序的集合
select("post", "person_id", Person.find(:all).collect {|p| [ p.name, p.id ] }, { :include_blank => true }) 中{ :include_blank => true } 可以设置select 元素的默认值为空的option
将 javascript 中的变量插入界面中时可以拼字符串的方式,如 $a 为 javascript 中的变量那么, $('<td>'+$a+'</td>') ,这样 td 元素中就插入了 javascript 中的变量了,在把 td 插入到界面就 OK 了
扩展快
多台的反向关联
在 sumit 的时候可以用 jquery 中的 submit 函数先进行其他操作,其他操作完成后在使表单 submit
分页功能在课程总库里有
对模型增加事务,对模型的操作事务则 roll back
模型名 .transaction do
对模型进行的操作
End
Ruby 中整数除以整数仍然是整数。
递归算法 : 函数自己调用自己
Javascript 中用 var 声明一个变量是局部变量,不用则是一个全局变量,局部变量跳出函数后不起作用。
界面应用框架 iframe 首先定义 iframe 的 name 属性,通过建立 a 标签并设置 a 标签中的 target='iframe 中 name 的名称 ' 从而实现单击 a 改变 iframe 框架
window.top // 最顶层窗口
window.self // 当前窗口
window.parent // 父级窗口