2

所以我目前正在开发一个需要向后兼容的 JSON API 的新版本。我设置了以下模型:

class Student
  # this is a student of type "version 1"
  has_one :student_information
  has_one :family_information
  #...
end

class V2::Student < ::Student
  # this is a student of type "version 2"
  # which accesses the same table as the version 1
  self.table_name = 'students'
end

所以,所有的关联都被继承了,这很好。但是学生的第 2 版是这样定义的,family_information即被删除。为了与 API 版本保持兼容,我无法将其从Student基类中删除,但希望将其从V2::Student类中删除。

我怎样才能做到这一点?这甚至有必要吗?更好的解决方案?

4

1 回答 1

0

您也可以像 V2 一样制作 V1,并将关联放在 V1 中,而不是直接放在 Student 类中。

class Student
  #...
end

class V1::Student < ::Student
  # this is a student of type "version 1"
  has_one :student_information
  has_one :family_information
  self.table_name = 'students'
end

class V2::Student < ::Student
  # this is a student of type "version 2"
  # which accesses the same table as the version 1
  self.table_name = 'students'
end
于 2019-09-19T12:57:00.077 回答