Ruby on rails Rails中的自定义关系建模
我想知道建立这种关系的最佳方式是: 我有两个模型:一个答案和一篇文章 答案定义如下:Ruby on rails Rails中的自定义关系建模,ruby-on-rails,activerecord,model,relationship,Ruby On Rails,Activerecord,Model,Relationship,我想知道建立这种关系的最佳方式是: 我有两个模型:一个答案和一篇文章 答案定义如下: **Answer** - content:text - link:string 我想写一篇文章如下 **Article** - title:string - what:Answer - when:Answer - how:Answer - why:Answer 创建文章模型的最佳方法是什么 我知道一篇文章有很多答案,一个答案属于一篇文章,但我不知道如何实现这种关系,也不知道如何将文章的答案数量
**Answer**
- content:text
- link:string
我想写一篇文章如下
**Article**
- title:string
- what:Answer
- when:Answer
- how:Answer
- why:Answer
创建文章模型的最佳方法是什么
我知道一篇文章有很多答案,一个答案属于一篇文章,但我不知道如何实现这种关系,也不知道如何将文章的答案数量限制在四个什么、何时如何、为什么 一个选项是创建答案模型:
**Answer**
- content:text
- link:string
- question_type:string
问题类型为“什么”、“何时”、“谁”或“为什么”。和一个文章模型:
**Article**
- title:string
然后,您可以这样设置您的关系:
答案.rb
好的,我真的很喜欢这种方法。我对这种关系建模有困难,因为我一直在考虑一对一的关系,但我认为一对多是更好的方法。非常感谢。
class Answer < ActiveRecord::Base
has_one :article
end
class Article < ActiveRecord::Base
has_many :answers
end
validate :question_type_validator
def question_type_validator
question_types = answers.all.map(&:question_type)
question_types.each do |question_type|
if question_types.count(question_type) > 1
errors.add(:question_type, "Must only have one of each, what, when, who, why.")
end
end
end