Ruby on rails Rails模型可以有一系列关联吗?

Ruby on rails Rails模型可以有一系列关联吗?,ruby-on-rails,ruby,associations,Ruby On Rails,Ruby,Associations,我到处都找过了,什么也找不到(可能是因为不可能) 我有一个会议模型和一个语言模型(它有一个名为Language的字符串列)。每次会议有两种语言 是否有一种方法可以建立关联,例如: rails g migration AddLanguageToMeetings语言:引用 然后在引用中存储一个包含2个语言ID的数组 例如,Meeting.language_id=[1,2] 然后能够调用该语言,如: 会议。语言\u id[0]。语言 我怎样才能建立这个协会?我是否需要有两个不同的列,每个列都有一个关联

我到处都找过了,什么也找不到(可能是因为不可能)

我有一个会议模型和一个语言模型(它有一个名为Language的字符串列)。每次会议有两种语言

是否有一种方法可以建立关联,例如: rails g migration AddLanguageToMeetings语言:引用

然后在引用中存储一个包含2个语言ID的数组

例如,
Meeting.language_id=[1,2]

然后能够调用该语言,如:

会议。语言\u id[0]。语言

我怎样才能建立这个协会?我是否需要有两个不同的列,每个列都有一个关联的id


谢谢

您所描述的是一个
有许多
,其中外键存在于
语言
表中,或者存在于
语言
会议
表之间的连接表中


如果您希望每个
会议
指向两种语言,那么您可以在
会议
表中使用两个外键,为每种语言指定一个真实名称,然后在您的
会议
中有两个属于
的关联,外键存在于
语言
表中,或存在于
语言
会议
表之间的连接表中


如果您希望每个
会议
指向两个正好两种
语言
,那么您可以在
会议
表中使用两个外键,为每种语言指定一个真实名称,然后在
会议
中有两个
属于
的关联。创建另一个名为MeetingLanguage的模型,包含两列:

create_table :meeting_languages do |t|
    t.references :meetings
    t.references :languages
end
和协会:

class MeetingLanugage < ActiveRecord::Base
    belongs_to :language
    belongs_to :meeting
end

现在,您可以在一次会议上使用任意多种语言。

您需要的是N对N关系。创建另一个名为MeetingLanguage的模型,包含两列:

create_table :meeting_languages do |t|
    t.references :meetings
    t.references :languages
end
和协会:

class MeetingLanugage < ActiveRecord::Base
    belongs_to :language
    belongs_to :meeting
end

现在,您可以在一次会议上使用任意多种语言。

bummer。我觉得这是重复创建2列,但如果这是唯一的方法。。。谢谢同样,不,
有许多
也是一种完全有效的方法。您可以使用验证来强制执行最大数量的关联。这是一种糟糕的设计。如果你有更多的,那两种语言呢?若参加会议时,您必须在每种语言中添加注释或其他附加数据,该怎么办?使用join table,如@jan minárik所述。@AntonAL再次阅读我的答案,这是我的第一个建议。糟糕。我觉得这是重复创建2列,但如果这是唯一的方法。。。谢谢同样,不,
有许多
也是一种完全有效的方法。您可以使用验证来强制执行最大数量的关联。这是一种糟糕的设计。如果你有更多的,那两种语言呢?若参加会议时,您必须在每种语言中添加注释或其他附加数据,该怎么办?使用join table,如@jan minárik所述。@AntonAL再次阅读我的答案,这是我的第一个建议。否。您不能通过ID数组进行关联。。有两种方法可以做到这一点:
有很多:通过,属于:通过
有很多
取决于您的用例。。不可以。您不能通过ID数组进行关联。。有两种方法可以做到这一点:
有很多:通过,属于:通过
有很多
取决于您的用例。。