Ruby on rails 继承Ruby控制器
我在一个项目中遇到了一个问题,我有一个称为域的模型和另外两个称为知识和练习的模型。 域保持知识和运动的共同属性和关联,除此之外,知识和运动保持自己的属性和关联。 领域可以是知识,也可以是练习 我将在模型和迁移之间创建以下关系:Ruby on rails 继承Ruby控制器,ruby-on-rails,ruby,inheritance,activerecord,controller,Ruby On Rails,Ruby,Inheritance,Activerecord,Controller,我在一个项目中遇到了一个问题,我有一个称为域的模型和另外两个称为知识和练习的模型。 域保持知识和运动的共同属性和关联,除此之外,知识和运动保持自己的属性和关联。 领域可以是知识,也可以是练习 我将在模型和迁移之间创建以下关系: class Domain < ApplicationRecord has_one :knowledge has_one :exercise end class Knowledge < ApplicationRecord belongs_to :d
class Domain < ApplicationRecord
has_one :knowledge
has_one :exercise
end
class Knowledge < ApplicationRecord
belongs_to :domain
end
class Exercise < ApplicationRecord
belongs_to :domain
end
类域
它现在正在工作,但我不知道这是否是正确的方法,我也不知道创建知识和练习的控制器方法的步骤,因为我之前必须创建一个相应的域
你能告诉我正确的方法吗?或者告诉我我能找到什么
非常感谢你的帮助 在
域中同时拥有知识
和练习
的关系不符合一个域可以是知识或练习的陈述
我建议创建多态关系,以便更好地处理这种情况
class Domain < ApplicationRecord
belongs_to :implementation, polymorphic: true
end
class Knowledge < ApplicationRecord
has_one :domain, as: 'implementation'
end
class Exercise < ApplicationRecord
has_one :domain, as: 'implementation'
end
类域
通过这种方式,域
只能有一个实现(要么是知识
,要么是练习
),可以更好地满足您的需要。当然,您可以将实现
重命名为您喜欢的任何名称
希望这能回答你的问题。你也可以考虑使用STI。