Rails自定义Helper模块含义讲解

Ruby on Rails开发框架中有许多可以自定义的模块,这些东西可以帮助我们更加方便的应用框架编写代码。在这里我们将会为大家介绍Rails自定义Helper模块的相关含义。

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

  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   
  27. # 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  

要想使用这些Rails自定义Helper模块,我们只需修改ApplicationController即可

相关推荐