Ruby on Rails中的Helpers vs Extensions?

时间:2016-12-13 01:07:27

标签: ruby-on-rails helper

Ruby on Rails中的Helpers类和Extension类有什么不同?

一位朋友告诉我,Extension是与对象相关的类,这意味着Extension将为该对象实例定义方法。 和Helpers是视图相关的类,在helper类中定义的方法应该在View中使用与类相似的名称。

1 个答案:

答案 0 :(得分:1)

扩展用于扩展默认情况下在rails中已存在的对象方法的功能。例如.blank?方法。如果您希望该默认方法具有额外功能,则可以扩展该方法:

require 'active_support'
require 'active_support/core_ext/object/blank'

# Customize your extension here ...

当您创建自己的类(User Class,Post Class等)时,您可以使用帮助程序类向该类添加方法。如果您想登录用户:

#Session Helper Class

  def log_in(user)
    session[:user_id] = user.id
  end

如果要与模型数据进行交互,则不会使用帮助程序类。为此,您可以在模型类中定义方法。