一个模型的关联属于两个不同的模型

时间:2013-10-18 20:50:47

标签: ruby-on-rails associations polymorphic-associations model-associations

我应该在这种情况下使用哪种类型的rails关联?

一个问题有很多答案,一个用户也有很多答案。

多态关联似乎非常接近,但我需要问题的答案和用户指出的答案指向同一个对象。它似乎与{{3}上的示例不同因为在该示例中,Picture对象对于Employee和Product是不同的。使用他们的例子,我需要一张员工的照片和一张产品图片相同的图片。

我想我需要一个像

这样的结构
-----------------------------------------------
answer_id | question_id | user_id | answer_text
-----------------------------------------------
|    1    |      5      |    10   |   stuff   |
|    2    |      3      |    6    |   stuff 2 |
|    3    |      2      |    10   |   stuff 3 |

我可以让答案属于问题,并手动添加user_id,但这并不觉得非常“困难”。

任何想法都赞赏。

1 个答案:

答案 0 :(得分:1)

这不适合你吗?

class User < ActiveRecord::Base
 has_many :answers
end

class Question < ActiveRecord::Base
 has_many :answers
end

class Answer < ActiveRecord::Base
 belongs_to :question
 belongs_to :user
end

你的表结构就像

answers
   -question_id
   -user_id
   -answer_text