0

私の Rails アプリには、 と の 3 つのテーブルformslanguagesありlevelsます。

formsのテーブルには、人々が提出するカリキュラムに関する情報が含まれています。
提出者の個人情報に関するさまざまな欄があり、そのうちの 1 つは外国語の知識レベルです。

languagesのテーブルには、カリキュラム フォームに存在する必要がある言語が含まれており、列にはidnamecreated_atおよびがありupdated_atます。

levelsのテーブルには言語知識レベルが含まれています。現在、基本、中、上級のみがあり、、、、idおよび列がnameあります。created_atupdated_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ここで、これら 2 つのテーブルを関連付ける 4 番目のテーブルがデータベースに存在しlanguage_idますlevel_id

Formtasticを使用して、テーブルに記録されているすべての言語に対して、テーブルに存在する一連のラジオ ボタン入力が表示されるように、このlanguages_levelsテーブルをテーブルに関連付ける方法はありますか?formslanguageslevels

4

2 に答える 2

1

あなたが説明したことについては、ブリッジテーブルを使用する( でlanguage_lavelsテーブルを使用するhas_and_belongs_to_many)のは間違ったアプローチのようです。必要なのは、3 方向の 1 対多の関係だけです。

つまり、、、およびLanguageLevelに属するモデル、たとえば を作成する必要があります。次に、 for each for each を入力できます。FormLanguageLevelLanguageLevelLanguageForm

于 2013-10-09T11:39:20.170 に答える