诗歌rails 之自定义Helper模块
但是有些Helper我们希望是全局共享的,一般我们将这些Helper方法都扔在ApplicationHelper模块里
其实我们可以在app/helpers目录下建立我们自定义的Helper模块,如formatting_helper、path_helper等
- # 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
# 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即可
- class ApplicationController < ActionController::Base
- helper :formatting, :path
- end
class ApplicationController < ActionController::Base helper :formatting, :path end
或者直接使用helper :all来使用所有的Helper
转载于:https://www.cnblogs.com/orez88/articles/1520407.html
诗歌rails 之自定义Helper模块相关推荐
- 实现第一个自定义nginx模块
实现第一个自定义nginx模块 下面的过程详细记录了如何实现第一个自定义的nginx模块,对nginx入门者包括我很有参考价值,特记录如下. 前提 假定以root身份已经在CentOS 6.8 x86 ...
- linux rpm找不到命令_linux环境下 python环境import找不到自定义的模块
linux环境下 python环境import找不到自定义的模块 问题现象: Linux环境中自定义的模块swport,import swport 出错.swport模块在/root/sw/目录下. ...
- MVC Razor:自定义Helper方法
在使用自定义Helper方法时,开始我试了很多次都不成功一直报错"找不到WebMatrix.WebData.dll.WebMatrix.Data.dll". 应该是一个bug,估计 ...
- 演练:创建和注册自定义 HTTP 模块
本演练演示自定义 HTTP 模块的基本功能. 对于每个请求,都需要调用 HTTP 模块以响应 BeginRequest 和 EndRequest 事件. 因此,该模块在处理请求之前和之后运行. 如果 ...
- Ionic中自定义公共模块以及在自定义模块中使用ionic内置模块
场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...
- JS中闭包的应用自定义JS模块2
/*** 自定义模块2*/ (function (window) {//私有的数据var msg = 'atguigu'var names = ['I', 'Love', 'you']//操作数据的函 ...
- JS中闭包的应用自定义JS模块
/*** 自定义模块1*/ function coolModule() {//私有的数据var msg = 'atguigu'var names = ['I', 'Love', 'you']//私有的 ...
- JBoss AS 7:自定义登录模块
JBoss AS 7很整洁,但是仍然缺少文档(错误消息没有那么有用). 这篇文章总结了如何创建自己的兼容JavaEE的登录模块,以对部署在JBoss AS上的Web应用程序的用户进行身份验证. 提供了 ...
- Qt自定义QML模块
自定义QML模块 含义为将常用风格的Button,Text,RadioButton,或者自定义的控件作为一个控件进行使用,节省代码. 优点: 代码简洁,减少重复代码 自定义的控件进行封装重复使用 可以 ...
最新文章
- lambda表达式(详)
- Oracle教程之四招提高Oracle位图索引的使用效果
- python对笔记本电脑的要求-如何用Python在笔记本电脑上分析100GB数据(上)
- mysql 主从同步不一致_涨知识!MySQL 主从同步原理原来是这样的
- ldap添加自定义字段
- java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器(十分详细)
- 优达学城深度学习之二——矩阵数学和Numpy复习
- 阿里一面,说说你对Mysql死锁的理解
- 精通php7,PHP 7从入门到精通
- 百度硬盘搜索使用指南
- Kotlin-Android-Extensions:不仅仅是替代findViewById
- 1993年考研数学一解析pdf
- 三相滤波器怎么接线_三相电源滤波器作用 详解三相电源滤波器
- Java安装环境变量
- 优质的ppt图标素材推荐,不容错过
- 底部孕线形态有哪些?底部孕线形态特征是什么?
- 全栈创新加速“算力网络”时代来临:英特尔携手中国移动共谱数智华章
- 挽回前男友的方法(挽回必看)
- 2017年如何实现1个亿的小目标?
- Ubuntu20.04 LTS装Livesuit的方法
热门文章
- [react] 举例说明如何在React创建一个事件
- React开发(154):注意div得写法
- React开发(127):引入icon的方式
- [html] 制作一个不规则形状有哪些方法可以实现?
- [css] 你知道CSS中的字母“C“代表什么吗?
- [css] 如何隐藏没有静音、自动播放的音视频?
- 前端学习(2762):如何使用scss
- 前端学习(2667):退出编辑状态
- 前端学习(2244):计算器显示问题
- spring mvc学习(60):ssm项目整合