0

我有一个名为的父类Question. 有很多类型的问题。

其中之一是MultipleChoice。所有子问题类MultipleChoice都有一个名为的方法generate_response,该方法返回一个 json 对象,其中包含我的应用程序的其余部分产生问题所需的所有部分。

为了使我的应用程序更干燥,我注意到这个返回的 JSON 对象中的几个项目是类似的调用。例如,:title总是title子类的。

有没有办法我可以在里面写一个父方法Question,将这个静态信息附加到它的 JSON 返回中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`?
4

1 回答 1

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
于 2013-07-15T23:44:02.877 回答