在我的rails应用中,我有三个表:forms
,languages
和levels
。
我的forms
表包含有关人们提交的课程的信息
它有关于提交者个人信息的各种栏目,其中一个是他们的外语知识水平。
我的languages
表包含应在课程表单中显示的语言,并且包含id
,name
,created_at
和updated_at
列。
我的levels
表包含语言知识级别,现在它只包含基本,中等和高级,并且包含id
,name
,created_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_levels
和language_id
列之外别无其他。
是否有办法使用Formtastic将level_id
表与languages_levels
表关联起来,对于forms
表中记录的每种语言,要出现在languages
表中的单选按钮输入集?
答案 0 :(得分:1)
对于您所描述的内容,使用桥接表(使用带有language_lavels
的{{1}}表)似乎是一种错误的方法。你只需要三方一对多的关系。
换句话说,您应该创建一个名为has_and_belongs_to_many
的模型,该模型属于LanguageLevel
,Form
和Language
。然后,您可以为每个Level
的每个LanguageLevel
填充Language
。
答案 1 :(得分:0)