读《应用rails进行敏捷web开发》第2版-16

p460

 

ActionView

默认情况,有默认模板(/app/view/:controller/:action.rhtml)会被调用

也可以调用render来指定模板进行渲染

 

 

模板中可以使用的

1.action的实例变量

2.session request response flash等等

3.特殊变量 controller可以返回当前控制器,当然也就可以访问该控制器的public方法

4.特殊变量 base_path 当前模板的根路径

 

Rails支持3种模板:

1.Builder模板,用来生成xml,外部免费库

2.ERb模板 ,最常用的

3.RJS模板

 

html_escapte()方法 就是h(),用来替换输入中的html关键字符

<%=后马上写h,养成好习惯

 

如果碰到允许用户输入html源码的话,用sanitize方法进行清扫,它会清除其中危险代码.

 

 


 

辅助方法

app/helper/:controller_helper.rb中是某控制器的辅助方法模块


 

内建辅助方法

 

格式化方法

debug可以用yaml方式输出参数,比如

debug(params)

debug(session)

 

链接

 

 

 

link_to_if  条件成立,生产链接,否则只有文本

link_to_unless 与link_to_if相反

 

button_to 生成提交按钮

 

img_tag("图片地址",:size=>"80X120") #其中图片相对地址默认为public/images目录

 

mail_to

 

stylesheet_link_tag "my.css"             #链接样式表(默认为public/stylesheets目录)

stylesheet_link_tag :all,:recursive=>true                #链接所有样式表,包括子目录

 

javascript_link_tag        #默认从/public/javascripts目录加载

javascript_link_tag :defaults #加载默认的4个js和application.js

 

分页部分略过

 


表单

 

用户提交表单时,

rails开始构造params实例.如果参数名称中有方括号,比如user[name],那么在params中会把键为user的变量构造为一个hash

嵌套构造键为name的值.

比如

id=>1

user[addr][city]='chengdu ' ,其params会被构造为

{:id=>1,:user=>{:addr=>{:city=>"chengdu "}}}

 

 

 form_for

 

 

其中的:user,意味着:

1.view可以使用action的@user变量

2.form提交的action可以使用params[:user]变量

 

如果<% form_for :user,@custom_user,...do |form| %>

可以使用@custom_user变量和params[:custom_user]

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值