我有一个名为Question
的父类。有很多类型的问题。
其中一个是MultipleChoice
。像MultipleChoice
这样的所有子问题类都有一个名为generate_response
的方法,该方法返回一个json对象,其中包含我应用程序其余部分生成问题所需的所有部分。
为了让我的应用程序DRY'er,我注意到这个返回的JSON对象中的几个项目是类似的调用。例如,:title
始终是子类的title
。
有没有办法可以在Question
内编写一个父方法,将这个静态信息附加到generate_response
示例:
class MultipleChoice < Question
def generate_response
{
title: title
explanation: explanation
first_time: check_if_first
}
end
class Question < ActiveRecord::Base
# is there a way inside of this class to append my static info to any child class usage of the method `generate_response`?
答案 0 :(得分:1)
您可以使用super
。
class Question < ActiveRecord::Base
def generate_response(obj)
static info
end
end
class InheritsFromQuestion < Question
def generate_response
super(self) #this will call the parent class (Question) method
rest of whatever
end
end