Rails Action View::Helpers 方法
一为什么在Rails使用helper方法:
前言:在生成controller文件时的rails app就会顺带生成相应的helper文件。
1、Helper方法指的是可以在template中使用的辅助方法,把输出的资料转化为输出的html字符串;
2、可以是简化template的文件复杂结构,即将template中比较复杂的结构用helper文件包装起来,简化template的界面和易于修改
已下都是helper辅助方法(其中的几个):
二、asserts(静态档案)辅助方法
1、rails整合stylesheet和javascript档案,可以加速浏览器的加载
2、可以让rails编译用sass 和coffeescript写的stylesheet和javascript
3、如果内容修改会让rails在静态网叶上加上时间序号,保证用户下载到最新的版本
4、通过它,rails可以帮助所有的asserts加上静态档案伺服器网址
常用的几个方法:
- javascript_include_tag
- stylesheet_link_tag
- image_tag
- video_tag
- audio_tag
三、表单辅助方法
form_tag 和 form_for 的区别:
<%= form_for @event do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
form_for 要传入model物件,修改的时候可以自动把预设值带入
<%= form_tag "/search" do %>
<%= text_field_tag :keyword %>
<%= submit_tag %》
<% end %>
表单栏辅助方法:
- text_field
- text_area
- radio_button
- check_box
- select
- select_date, select_datetime
- submit
处理form_for的一个问题:
form_for必须要有model的属性:如果没有的话,要在相应的model里添加方法作为充当属性
四、如何使用helper和自定义helper:
自定义helper只需要在app/hleper里自定义就好,application_helper.rb是全局的
使用helper例子:
module ApplicationHelper def gravatar_url(email) gravatar_email = Digest::MD5.hexdigest(email.downcase) return "http://www.gravatar.com/avatar/#{gravatar_email}?s=48" end end
可以在Template中这样使用:
<%= image_tag gravatar_url(user.email) %>