【问题标题】:relating third table to has_and_belongs_to_many in ruby on rails将第三个表与 ruby​​ on rails 中的 has_and_belongs_to_many 相关联
【发布时间】:2015-04-13 14:44:21
【问题描述】:

我正在构建一个包含一组固定问题和固定答案的多项选择调查。一个问题有_很多答案,一个答案属于_问题。问题和答案将是数据库中的种子数据,并将写入种子.rb 文件中。

我试图弄清楚如何将调查与问题和答案联系起来。用户可以选择进行短期或长期调查,每个调查都会有不同数量的问题。因此,调查需要能够跟踪它有哪些问题,以及为每个问题选择的答案。我是从调查和问题开始建立这种关系的:

class Survey < ActiveRecord::Base
    has_and_belongs_to_many :questions
end  

class Question < ActiveRecord::Base
    has_and_belongs_to_many :surveys
end  

现在我不知道如何将答案放入其中。一个问题 has_many :answers,但我如何将答案与调查联系起来?我在想一个 has_many through 关系,但我不知道它会如何工作。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails many-to-many has-many-through relationships has-and-belongs-to-many


    【解决方案1】:
    class Survey < ActiveRecord::Base
        has_many :questions
    end  
    
    class Question < ActiveRecord::Base
        has_many :answers
        belongs_to: survey
    end  
    
    class Answer < ActiveRecord::Base
        belongs_to :question
    end
    

    假设,对于任何特定的调查,

    Survey.find(1).questions.collect{|x| x.answers}
    

    通过这种方式,您可以找到一个数组数组,其中包含每个问题和答案。我想这就是你需要的。

    【讨论】:

    • 谢谢,但这不起作用,因为它需要为每个调查创建一个新的问题实例。这不会是有效的,因为问题总是相同的。所有问题和答案都存在一次,因为它们是在种子.rb 文件中创建的。我不知何故需要将调查与问题和答案联系起来。我有点确定我将调查与问题联系起来的方法是可靠的,但不是我无法弄清楚如何正确获得答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    相关资源
    最近更新 更多