Rails 模型可以有一组关联吗?

gwa*_*ton 1 ruby ruby-on-rails associations

我到处找,找不到任何东西(也许是因为不可能)

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

有没有办法建立关联,比如:rails g migration AddLanguageToMeetings language:references

然后在引用中存储一个包含 2 个 language_ids 的数组?

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

然后就可以调用语言了,比如:

meeting.language_id[0].language

我怎样才能建立这个协会?我是否需要有 2 个不同的列和每个关联的 ID?

谢谢!!

Jan*_*rik 6

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

create_table :meeting_languages do |t|
    t.references :meetings
    t.references :languages
end
Run Code Online (Sandbox Code Playgroud)

和协会:

class MeetingLanugage < ActiveRecord::Base
    belongs_to :language
    belongs_to :meeting
end
Run Code Online (Sandbox Code Playgroud)

然后在会议模块中:

has_many :meeting_languages
has_many :languages, through: :meeting_languages, source: :language
Run Code Online (Sandbox Code Playgroud)

现在,您可以在一次会议中使用任意数量的语言。