`
hideto
  • 浏览: 2679273 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails宝典之第六十四式: 自定义Helper模块

    博客分类:
  • Ruby
阅读更多
Rails默认为每个controller指定一个helper,所有的helper都放在app/helpers目录下
但是有些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

要想使用这些Helper,我们只需修改ApplicationController即可
class ApplicationController < ActionController::Base
  helper :formatting, :path
end

或者直接使用helper :all来使用所有的Helper
分享到:
评论
3 楼 rawbenny 2007-12-08  
我们系统里面除了controller里要使用helper之外,还有一个自定义的service(app/service)也要用到helper,这个方法就不大管用了。
2 楼 freecode 2007-08-15  
不错,学习中。
1 楼 blackanger 2007-08-11  
这个办法挺实用,俺正好用到

相关推荐

    Rails的精简版本Rails::API.zip

    Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...

    sprockets-rails:Sprockets Rails集成

    提供用于Rails 4.x(及更高版本)资产管道的Sprockets实现。 安装 gem 'sprockets-rails' , :require =&gt; 'sprockets/railtie' 或者,如果禁用了Bundler自动请求功能,则在config/application.rb require 'sprockets...

    Rails 101 入门电子书

    #### 四、Ruby on Rails安装最佳实践 - **安装步骤**: - 环境准备: 确保操作系统支持,并安装必要的软件包。 - 安装Ruby: 使用rbenv、RVM或其他工具进行管理。 - 安装Rails: 使用gem工具安装最新的Rails版本。 ...

    exception_handler::bomb:自定义错误页面:bomb:Ruby on Rails→将RubyRails异常转换为品牌的4xx5xx HTTP错误页面

    拥有290,000多个下载量,这是*唯一* gem,可为Rails 5和6提供自定义的400/500异常页面 当前 (2018年8月) :memo: - :warning_selector: - :wrench: - :telephone_selector: - :white_medium_star: :memo: 介绍 ...

    :bomb:自定义错误页面:bomb:Ruby on Rails→将Ruby / Rails异常转换为品牌4xx / 5xx HTTP错误页面。-Ruby开发

    下载次数超过290,000,这是为Rails 5和6提供自定义400/500异常页面的“唯一”宝石,ExceptionHandler目前是CUSTOM Rails错误页面的最受欢迎的异常宝石。 拥有290,000多个下载量,这是为Rails 5和6提供自定义400/500...

    Rails相关电子书汇总

    标题 "Rails相关电子书汇总" 暗示了这个压缩包包含了关于Ruby on Rails框架的电子书籍资源。Ruby on Rails,通常简称为Rails,是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,以...

    rails 项目起步示例

    Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...

    Ruby on Rails 指南 v5.0.1 中文版

    - **前提条件**:为了能够顺利地开始Rails的学习之旅,读者需要具备一定的Ruby语言基础,并且对Web开发有一定的了解。 - **Rails是什么?**:Rails是一种用于开发服务器端应用程序的模型-视图-控制器(MVC)框架,它...

    Ruby on Rails入门经典代码

    Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...

    simple_form_extension:自定义简单表单输入和强大的Rails表单组件

    此gem将自定义常用输入类型添加到简单形式。 可用输入 可以使用以下定制的简单表单输入: 布尔值 collection_check_boxes collection_radio_buttons 约会时间 文件 图像 数字 编辑器 选择 滑杆 颜色 这些输入中的...

    ruby:自定义样板到Ruby on Rails

    自述文件 该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本 系统依赖 配置 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) ...

    ruby on rails(开发文档)

    7. **Helper方法**:为了保持视图的简洁,Rails允许你在helper模块中定义辅助方法,然后在视图中调用。 8. **测试驱动开发(TDD)**:Rails鼓励使用测试来驱动开发,内置了Test::Unit和RSpec等测试框架。 9. **...

    foundation_rails_helper:Zurb基金会的Rails Helper框架

    gem 'foundation_rails_helper' , '~&gt; 3.0' 然后执行: $ bundle 兼容性 仅完全支持Rails 4.1 / 4.2 / 5/6和Foundation 6 某些功能可能适用于Foundation 5及更早版本,但结果可能会有所不同,并且

    Ruby-ActiveModel的自定义验证用于检查数组是否包含在另一个中

    在Ruby开发中,ActiveModel是Rails框架的一部分,它提供了一种模型层的接口,使得非ActiveRecord对象也能具有类似于ActiveRecord的行为。这个标题提到的"Ruby-ActiveModel的自定义验证用于检查数组是否包含在另一个...

    rails_console_toolkit:可配置的 Rails 控制台助手

    RailsConsole 工具包 :wrench: :toolbox: 可配置的 Rails 控制台助手更快地查找记录,添加自定义助手,将您的控制台寿命提高 100%。安装将此行添加到应用程序的 Gemfile 中: gem 'rails_console_toolkit' 然后生成...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    Ruby-on-Rails-3.rar_site:www.pudn.com

    该资源的核心内容是《Web开发敏捷之道 - 应用Rails进行敏捷Web开发 - 第三版》这本书的PDF版本。这本书详细介绍了使用Ruby on Rails框架进行敏捷Web开发的相关知识。 Ruby on Rails(简称Rails)是一种基于Ruby编程...

Global site tag (gtag.js) - Google Analytics