- 浏览: 331075 次
- 来自: 西安
文章分类
- 全部博客 (106)
- ruby 插件 (3)
- ruby on rails (33)
- google adsense (0)
- RedCloth (1)
- 情感 (5)
- 编程语言 (1)
- 新闻 (1)
- rails 环境 (1)
- ruby 编辑器 (1)
- python (1)
- linux (20)
- linux,gvim (2)
- mysql (4)
- oracle (4)
- ruby gem (2)
- Windows (2)
- http web 服务器 (1)
- c# (4)
- script (1)
- Microsoft (5)
- domain (1)
- php (4)
- 软件开发方法 (2)
- 设计模式 (0)
- powershell (4)
- android (2)
- Hyper-v (1)
- web (1)
- winserver 2012 R2 (1)
- delphi (1)
- sqlite (0)
- Git (1)
- redis (1)
- vpn (0)
最新评论
-
di1984HIT:
学习了~~
ROR rails正常启动,但是http://127.0.0.1:3000不能访问的解决办法 -
0372:
应该有吧!我自己认为!
ITeye还有人维护吗? -
shuaigelingfei:
cywhoyi 写道应该是放弃了吧记得2、3年前,weibo上 ...
ITeye还有人维护吗? -
cywhoyi:
应该是放弃了吧记得2、3年前,weibo上私信问过Robin, ...
ITeye还有人维护吗? -
catroll:
现在可以使用:service php7.0-fpm start ...
php使用php-fpm重启、停止操作命令
一、首先了解一下Helper方法:
1. helper方法就是方法;
2. 它大部分在view中应用,也可以做为普通方法使用在其它场景中;
3. 它可以写在controller中,也可以写在app/helper模块中;
4. Rails框架提供了一些Helper方法,如:form_for、link_to等等;
5. 通过合理的将一些功能应用封闭成Helper方法,可以很大程度上简化代码量和维护成本,并且能完成一些统一性和风格方面的要求。
二、Helper方法的定义
1. 写在controller中的场景
写在控制器中的Helper方法,或者打算将控制器中的某个方法开放成Helper方法,以便在视图中使用时,必须使用“helper_method :xxx”写声明;如下面示例:
helper_method :date_fmt
def date_fmt date
return date.strftime("%Y-%m-%d")
end
end
2. 写在app/helper模块中的场景
每个控制器都可以有一个对应的Helper模块,它在app/helper目录下,与控制器文件同名。
./app/helper/users.rb
三、Helper方法中视图中的使用
Rails中的视图与JSP一样,属于嵌入式程序代码(这也是为什么扩展名为*.erb的意思),即它的内容可以是Html标签与Ruby代码的结合,
在视图中可以编写Ruby代码(使用<%%>括起来),也可以编写HTML标签代码。
1. 在Rails2.x中有个约定,视图中所使用的Helper方法或Ruby代码,调用过程中包含代码块(do..end之间的代码集合就叫代码块)的,
无论是否有返回值,必须使用<% ... %>。如果不包含代码块并且打算将结果输出到页面的,使用<%= ... %>,这就是我们所看到
的<% form_for %>和<%= link_to %>啦!
2. 上述提到的问题在Rails3中得到了统一,那就是只要打算输出到页面,均使用<%= ... %>
./app/view/users/index.html.erb
<th>
<td>序号</td>
<td>姓名</td>
<td>部门</td>
<td>入职时间</td>
</th>
<% i = 1 %>
<% for user in @user %>
<tr>
<td><%= i %><td>
<td><%= user.name %><td>
<td><%= user.department.name %><td>
<td><%= date_fmt(user.in_date) %><td>
</tr>
<% end %>
</table>
四、如何编写一个类似form_for的Helper方法(带有代码块的)
其实很简单,但这中间有几个小秘&密,仔细看!
我们假设一个应用场景:将用户传入的Html标签代码括在一个<form>中,并将结果返回。
#with_output_buffer是rails提供的一个方法,它能够执行代码块,并返回执行后的结果;
content = with_output_buffer(&block)
#concat也是rails提供的一个方法,它能够将字符输出到视图的调用位置,这是秘&密一般人可不知道哦!
#不信的话,你也可以用return 返回,看看结果是不是你想要的!
concat("<form '#{url}'>")
concat(content)
concat("</form>")
end
<input ...>
<input ...>
<input type="commit">
<% end %>
发表评论
-
ROR windows 开发环境配置
2017-02-17 20:06 0今天来了兴致想弄下ROR了,本人用的windows8.1 ... -
ROR rails正常启动,但是http://127.0.0.1:3000不能访问的解决办法
2014-10-14 16:25 5427D:\aaa>rails s => Booti ... -
Problem installing RMagick rubygem on Centos 6.3
2014-04-18 23:20 2523gem install rmagick出现错误: Bu ... -
centos yum install nokogiri 1.5.8 不成功的解决方案
2014-04-18 23:03 4290centos下安装nokogiri不成功,提示如下: ge ... -
Scope- ruby中变量的作用范围
2013-06-01 22:54 2375ruby中变量的作用范围有3种 1. Class d ... -
ruby-1.8.7中truncate方法重写
2013-04-29 23:49 1379在ruby-1.8.7中的运用方法truncate会存在问题 ... -
Linux 环境passenger多ruby版本共存部署
2013-04-25 21:53 36351.安装rvm Ruby代码 mk ... -
快速正确的安装 Ruby, Rails 运行环境
2013-04-22 10:50 1239系统需求 首先确定操作系统环境,不建议在 Windows ... -
Nginx+mongrel部署Rails应用
2013-04-21 22:12 1327安装nginx 下载地址 http://nginx.o ... -
从Rails2到Rails3
2013-04-19 15:25 1288我们来看下rails3相比rails2, 进步在哪里, 优势 ... -
用 Ruby scrAPI 做数据采集
2013-02-28 21:59 1455前天在 Railscasts 上 ... -
Ruby 在 Windows 下播放声音
2013-02-07 00:12 1330[代码] ruby代码 -
Ruby读取键盘输入 windows
2013-02-07 00:11 1669[代码] ruby代码 -
rails查看工程的版本兼容问题
2013-02-03 22:37 2119很初学Rails不久,感到Rails的版本不兼容是一个让人 ... -
Ruby 构建支持多线程的 Web 服务器
2013-02-01 22:59 1447[代码] ruby代码 -
Ruby on Rails 使用 Cookie 的方法
2013-02-01 22:55 1295代码] oschina_hello.rb -
蒙娜丽莎的微笑 Ruby实现
2013-01-31 22:27 7264这个挺有意思:Ruby 的 UI 库向来不怎么样,所以这 ... -
Ruby多进程并行抓取网页
2013-01-30 21:42 2020想研究一下各大网站首页有多少个链接,于是用Ruby写 ... -
ruby 163 发送 邮件
2013-01-30 21:01 1535最近学习ruby 写了个 mail 发送 邮件 16 ... -
sitemap_generator 生成 Sitemap
2013-01-27 21:00 1713安装 编辑Gemfile 1 ...
相关推荐
gem 'foundation_rails_helper' , '~> 3.0' 然后执行: $ bundle 兼容性 仅完全支持Rails 4.1 / 4.2 / 5/6和Foundation 6 某些功能可能适用于Foundation 5及更早版本,但结果可能会有所不同,并且
尽管如此,开发者并不总是直接使用iUI,而是通过编写通用的Ruby helper方法来创建HTML,这些方法可以绑定到Rails插件中,方便在任何Rails应用中使用。教程中提到的Soups OnLine示例是一个列出了烹饪方法的网站,它为...
### Rails 101 入门电子书知识点详解 #### 一、简介 《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别...
5. **辅助方法(Helper Methods)**:为视图提供便利的功能,如链接生成、样式辅助等。 6. **Scaffold**:快速开发工具,可以自动生成用于CRUD(创建、读取、更新、删除)操作的基本控制器、模型和视图。 7. **...
- **Helper**:辅助方法,提供在视图中复用的函数。 - **Controller**:处理HTTP请求,调用模型并决定如何呈现视图。 - **Session** 和 **Cookie**:用于跟踪用户状态,如登录信息。 - **Authentication** 和 **...
Rails 2.0 API 文档是一个非常宝贵的资源,它为开发者提供了全面的指南,以便于在使用Ruby on Rails 2.0版本时更好地理解和利用其框架功能。Ruby on Rails(简称Rails)是一个开源的Web应用框架,它遵循MVC(模型-...
7. **Helper方法**:为了保持视图的简洁,Rails允许你在helper模块中定义辅助方法,然后在视图中调用。 8. **测试驱动开发(TDD)**:Rails鼓励使用测试来驱动开发,内置了Test::Unit和RSpec等测试框架。 9. **...
5. **Helper方法**:这些辅助方法在视图层提供便利的功能,如HTML辅助方法,用于生成HTML元素。 6. **ActiveSupport**:这是Rails的一部分,包含大量实用的工具类和方法,如时间/日期处理、JSON解析和编码等。 7. ...
9. **辅助方法(Helper)**:辅助方法可以在视图中使用,帮助处理复杂的展示逻辑,如格式化日期、链接生成等。 10. **测试(Testing)**:Rails提供了一套强大的测试工具,如RSpec和Capybara,用于编写功能测试、...
这个 gem 在rails_helper.js.coffee.erb.上的编译时间上嵌入了image_path 、 asset_path和路由表rails_helper.js.coffee.erb. RailsHelper有一些功能。 局限性 这个 gem 只能使用没有命名路由的段。 前任。 # ...
视图方面,会涵盖ERB模板语言的使用,以及如何利用辅助方法(Helper Methods)来增强视图的功能。控制器部分则会介绍动作、HTTP请求和响应,以及如何使用过滤器来实现逻辑控制。 书中还会涉及Rails的测试驱动开发...
至于视图,会讲解ERB(Embedded Ruby)模板语法,如何在HTML中嵌入Ruby代码,以及辅助方法(Helper Methods)的使用,它们能帮助开发者更好地组织和复用视图代码。 最后,教程可能会简要介绍测试(Testing),Rails...
6. **辅助方法(Helper Methods)**:辅助方法是为了保持视图整洁而创建的函数,它们可以提供重用的代码或复杂的逻辑。 7. **哈希与符号化键(Hashes and Symbolized Keys)**:在Rails中,使用符号作为哈希键可以...
该模板将有权访问所有常规的rails helper方法以及在控制器中设置的任何实例变量。 如果您不仅仅需要包含一个可选的视图类,则它应与部分视图具有相同的名称,但不能带下划线。 app/views/posts/post_list_view.rb ...
8. **app**:应用程序核心代码目录,包括模型(Model)、视图(View)和控制器(Controller),以及帮助器(Helper)、邮件器(Mailer)、通道(Channel)等。 9. **tmp**:临时文件目录,存储运行时生成的文件,如...
- **helpers**: 辅助方法存储在`application_helper.rb`等文件中,可跨视图共享代码。 4. **db**目录:包含数据库迁移文件,如`migrate`子目录下的`.rb`文件,它们描述了数据库结构的变化。 5. **bin**目录:包含...
7. **Helper方法**:Rails提供了许多内置助手方法,帮助开发者在视图中处理复杂的逻辑和呈现数据。 8. **ActiveSupport库**:包含许多有用的工具方法和实用程序,如时间格式化、字符串操作等,大大提升了开发效率。...
4. **Helper**:助手方法可以帮助视图层处理复杂的逻辑,减少视图的复杂度,通常定义在`app/helpers`目录下的各个助手模块中。 5. **Scaffolding**:Rails的快速开发特性,能自动生成用于CRUD(创建、读取、更新、...