【问题标题】:has and belongs to many through拥有并属于许多通过
【发布时间】:2013-06-05 03:51:35
【问题描述】:

我有一个复杂的关系,我很难在视图中表示。我需要一些帮助来找出建立关系的最佳方式,这可能会解决我的大部分问题。

我这里有一个图表:Diagram

基本上,我正在尝试设置动态调查类型的应用程序。管理员可以去添加问题和问题选择。当用户登录时,他们可以去回答这些问题。他们每个问题只能选择一个答案,但会有一个部分,他们可以选择他们从“匹配”中接受的任何答案。这将用于匹配用户。

例如:

问题:

你最喜欢的颜色是什么? A) 红色 B) 黄色 C) 蓝色

比利选择红色,但表示他会接受红色或黄色作为比赛的答案。

约翰选择黄色并说他会接受红色或黄色的答案。因此,因为他们都选择了彼此“接受列表”中的颜色,所以这两个将在问题上匹配。

建立关系并在视图中表示关系的好方法是什么?我很难将我的大脑包裹在这个周围......

谢谢!

【问题讨论】:

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


    【解决方案1】:

    我不知道您是否可以更改架构,但如果可以,我认为您可以简单地做到这一点。

    我会尝试做如下的事情:

    模型(表格):

    Users
      -id
    
    Questions
      -id
    
    Choices
      -id
      -question_id
    
    Answers
      -id
      -user_id
      -choice_id
      -question_id
      -is_acceptance (boolean)
    
    User has_many answers
    Qestion has_many choices
    Choice belongs_to question
    Answer bleongs_to user , question 
    

    然后您可以将所有答案保存在一个表格中,并仅标记(真或假)主要答案。 毕竟,您可以编写自己的逻辑来检索相同的答案、接受答案等..

    【讨论】:

    • 是的,我肯定愿意更改架构。我有一个习惯,有时把事情复杂化!我不需要对此有一个习惯吗?如何仅显示与登录用户相关的问题/答案?对不起,我意识到愚蠢的问题!再次感谢
    • HABTM 是许多协会的妈妈link 我看不出你能像那样联系什么。顺便说一句,在 habtm 你需要新的连接表。如果您需要与 Acceptance_answer 不同的答案,您可以构建新模型(与答案几乎相同)。所有答案都与用户相关联,我认为只显示已记录的答案不会有问题:)
    猜你喜欢
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2017-08-22
    相关资源
    最近更新 更多