【发布时间】:2016-05-24 16:53:31
【问题描述】:
假设,我有三个模型。
- 用户(可以发布许多问题)
- 问题(可以有很多答案)
- 答案(用户可以发布许多答案)
现在我可以创建如下关联:
class User < ActiveRecord::Base
has_many :questions
has_many :answers
end
class Question < ActiveRecord::Base
belongs_to :user
has_many :answers
end
class Answer < ActiveRecord::Base
belongs_to :user
belongs_to :question
end
现在,如果我这样做,那么为查找任何用户对特定问题查询的答案将是:
@answers = User.find(params[:id]).answers.where(:question_id => params[:question_id])
有没有更好的解决方案?我应该修改关联还是这样?
【问题讨论】:
-
取决于,用户总是写自己的答案还是应该有预设选项?您是否需要用户界面供用户创建问题?
-
@max,是的,用户有一个用于创建/更新他们的问题的界面。此外,他们可以回答自己的问题。
-
您的解决方案在我看来是最佳的。您对此有任何顾虑吗?
标签: ruby-on-rails activerecord associations