Ruby on rails Rails模型可以有一系列关联吗?
我到处都找过了,什么也找不到(可能是因为不可能) 我有一个会议模型和一个语言模型(它有一个名为Language的字符串列)。每次会议有两种语言 是否有一种方法可以建立关联,例如: rails g migration AddLanguageToMeetings语言:引用 然后在引用中存储一个包含2个语言ID的数组 例如,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]。语言 我怎样才能建立这个协会?我是否需要有两个不同的列,每个列都有一个关联
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数组进行关联。。有两种方法可以做到这一点:有很多:通过,属于:通过
或有很多
取决于您的用例。。