Ruby on Rails中的Helpers类和Extension类有什么不同?
一位朋友告诉我,Extension是与对象相关的类,这意味着Extension将为该对象实例定义方法。 和Helpers是视图相关的类,在helper类中定义的方法应该在View中使用与类相似的名称。
答案 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
如果要与模型数据进行交互,则不会使用帮助程序类。为此,您可以在模型类中定义方法。