将连接表与另一个表链接

时间:2013-10-08 13:39:40

标签: ruby-on-rails-3 activerecord

在我的rails应用中,我有三个表:formslanguageslevels

我的forms表包含有关人们提交的课程的信息 它有关于提交者个人信息的各种栏目,其中一个是他们的外语知识水平。

我的languages表包含应在课程表单中显示的语言,并且包含idnamecreated_atupdated_at列。

我的levels表包含语言知识级别,现在它只包含基本,中等和高级,并且包含idnamecreated_at和{ {1}}列。

我能够使用以下代码关联我的updated_at表和我的languages表:

levels

现在,我的数据库中存在第四个表来关联这两个表,即#app/models/level.rb class Level < ActiveRecord::Base has_and_belongs_to_many :languages end #app/models/language.rb class Language < ActiveRecord::Base has_and_belongs_to_many :levels end 表,除了languages_levelslanguage_id列之外别无其他。

是否有办法使用Formtasticlevel_id表与languages_levels表关联起来,对于forms表中记录的每种语言,要出现在languages表中的单选按钮输入集?

2 个答案:

答案 0 :(得分:1)

对于您所描述的内容,使用桥接表(使用带有language_lavels的{​​{1}}表)似乎是一种错误的方法。你只需要三方一对多的关系。

换句话说,您应该创建一个名为has_and_belongs_to_many的模型,该模型属于LanguageLevelFormLanguage。然后,您可以为每个Level的每个LanguageLevel填充Language

答案 1 :(得分:0)

检查这些截屏视频,他们可能会指出正确的方向:

http://railscasts.com/episodes/47-two-many-to-many

http://railscasts.com/episodes/185-formtastic-part-2