【问题标题】:How to setup nested models with Rails 4如何使用 Rails 4 设置嵌套模型
【发布时间】:2017-01-07 02:00:09
【问题描述】:

我正在使用 Rails 4 构建问答类型的应用程序。

我创建的模型应该是:

Question
  belongs_to :user
  has_many :answers

Answer
  belongs_to :user
  belongs_to :question

或者应该是:

Question
QuestionAnswer

【问题讨论】:

  • 如果还有另一个Answer 模型,那么您可以将这个模型放入Question 模型中。所以它就像Question::Answer。
  • 这完全取决于您,我认为不值得为此提出问题。但是,我想说你应该选择第一个选项,因为它会给你question.answers 关联,这比第二个选项给你的更好,即question.question_answers。不过,这并不是什么大问题,因为您始终可以自定义关联名称以使其成为您喜欢的任何名称。

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

这取决于您选择表名称的偏好,但简单的 questions 和 answers 表是可读的,并且当您调用关联方法(例如 Question.last.answers 而不是 Question.last.question_answers 时)是有意义的(没有重复)。

此外,QuestionAnswer 看起来更像是您用来代表 question_answers 关联上的连接模型 has_many through 的东西。

# models/question.rb
# database table - questions
class Question < ActiveRecord::Base
  belongs_to :user
  has_many :answers
end

# models/answer.rb
# database table - answers (question_id as foreign key)
class Answer < ActiveRecord::Base
  belongs_to :questions
end

但是,如何对数据进行建模完全取决于您。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多