关键字: Rails Helper

Rails默认为每个controller指定一个helper,所有的helper都放在app/helpers目录下
但是有些Helper我们希望是全局共享的,一般我们将这些Helper方法都扔在ApplicationHelper模块里
其实我们可以在app/helpers目录下建立我们自定义的Helper模块,如formatting_helper、path_helper等

ruby代码
  1. # formatting_helper.rb
  2. module FormattingHelper
  3. def free_when_zero(price)
  4. price.zero? ? "FREE" : number_to_currency(price)
  5. end
  6. def yes_no(bool)
  7. bool? 'Yes' : 'No'
  8. end
  9. end
  10. # path_helper.rb
  11. module PathHelper
  12. def articles_path_for_article(article)
  13. if article.tip?
  14. tips_articles_path
  15. else
  16. news_articles_path
  17. end
  18. end
  19. def product_path(product)
  20. if product.kind_of? Book
  21. book_path(product)
  22. else
  23. movie_path(product)
  24. end
  25. end
  26. end
# formatting_helper.rb module FormattingHelper   def free_when_zero(price)     price.zero? ? "FREE" : number_to_currency(price)   end    def yes_no(bool)     bool? 'Yes' : 'No'   end end  # path_helper.rb module PathHelper   def articles_path_for_article(article)     if article.tip?       tips_articles_path     else       news_articles_path     end   end    def product_path(product)     if product.kind_of? Book       book_path(product)     else       movie_path(product)     end   end end 

要想使用这些Helper,我们只需修改ApplicationController即可

ruby代码
  1. class ApplicationController < ActionController::Base
  2. helper :formatting, :path
  3. end
class ApplicationController < ActionController::Base   helper :formatting, :path end 

或者直接使用helper :all来使用所有的Helper

转载于:https://www.cnblogs.com/orez88/articles/1520407.html

诗歌rails 之自定义Helper模块相关推荐

  1. 实现第一个自定义nginx模块

    实现第一个自定义nginx模块 下面的过程详细记录了如何实现第一个自定义的nginx模块,对nginx入门者包括我很有参考价值,特记录如下. 前提 假定以root身份已经在CentOS 6.8 x86 ...

  2. linux rpm找不到命令_linux环境下 python环境import找不到自定义的模块

    linux环境下 python环境import找不到自定义的模块 问题现象: Linux环境中自定义的模块swport,import swport 出错.swport模块在/root/sw/目录下. ...

  3. MVC Razor:自定义Helper方法

    在使用自定义Helper方法时,开始我试了很多次都不成功一直报错"找不到WebMatrix.WebData.dll.WebMatrix.Data.dll". 应该是一个bug,估计 ...

  4. 演练:创建和注册自定义 HTTP 模块

    本演练演示自定义 HTTP 模块的基本功能. 对于每个请求,都需要调用 HTTP 模块以响应 BeginRequest 和 EndRequest 事件. 因此,该模块在处理请求之前和之后运行. 如果 ...

  5. Ionic中自定义公共模块以及在自定义模块中使用ionic内置模块

    场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...

  6. JS中闭包的应用自定义JS模块2

    /*** 自定义模块2*/ (function (window) {//私有的数据var msg = 'atguigu'var names = ['I', 'Love', 'you']//操作数据的函 ...

  7. JS中闭包的应用自定义JS模块

    /*** 自定义模块1*/ function coolModule() {//私有的数据var msg = 'atguigu'var names = ['I', 'Love', 'you']//私有的 ...

  8. JBoss AS 7:自定义登录模块

    JBoss AS 7很整洁,但是仍然缺少文档(错误消息没有那么有用). 这篇文章总结了如何创建自己的兼容JavaEE的登录模块,以对部署在JBoss AS上的Web应用程序的用户进行身份验证. 提供了 ...

  9. Qt自定义QML模块

    自定义QML模块 含义为将常用风格的Button,Text,RadioButton,或者自定义的控件作为一个控件进行使用,节省代码. 优点: 代码简洁,减少重复代码 自定义的控件进行封装重复使用 可以 ...

最新文章

  1. lambda表达式(详)
  2. Oracle教程之四招提高Oracle位图索引的使用效果
  3. python对笔记本电脑的要求-如何用Python在笔记本电脑上分析100GB数据(上)
  4. mysql 主从同步不一致_涨知识!MySQL 主从同步原理原来是这样的
  5. ldap添加自定义字段
  6. java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器(十分详细)
  7. 优达学城深度学习之二——矩阵数学和Numpy复习
  8. 阿里一面,说说你对Mysql死锁的理解
  9. 精通php7,PHP 7从入门到精通
  10. 百度硬盘搜索使用指南
  11. Kotlin-Android-Extensions:不仅仅是替代findViewById
  12. 1993年考研数学一解析pdf
  13. 三相滤波器怎么接线_三相电源滤波器作用 详解三相电源滤波器
  14. Java安装环境变量
  15. 优质的ppt图标素材推荐,不容错过
  16. 底部孕线形态有哪些?底部孕线形态特征是什么?
  17. 全栈创新加速“算力网络”时代来临:英特尔携手中国移动共谱数智华章
  18. 挽回前男友的方法(挽回必看)
  19. 2017年如何实现1个亿的小目标?
  20. Ubuntu20.04 LTS装Livesuit的方法

热门文章

  1. [react] 举例说明如何在React创建一个事件
  2. React开发(154):注意div得写法
  3. React开发(127):引入icon的方式
  4. [html] 制作一个不规则形状有哪些方法可以实现?
  5. [css] 你知道CSS中的字母“C“代表什么吗?
  6. [css] 如何隐藏没有静音、自动播放的音视频?
  7. 前端学习(2762):如何使用scss
  8. 前端学习(2667):退出编辑状态
  9. 前端学习(2244):计算器显示问题
  10. spring mvc学习(60):ssm项目整合