1
我正在創建一個翻譯測驗網站。我有這些類:
- 版本 - quizz的正版。一個版本有很多翻譯。它屬於老師。
- 測試 - 測驗本身。它屬於學生
- 翻譯 - 它包含一對詞,一個在languaje 1和其他在languaje 2間
和2的關係
- TranslationsVersion - 包含翻譯測驗
的一個版本的名單 - TranslationsVersionsTest - 包含一個測驗的學生答案(所以,一個TranslationsVersion的答案)。學生將被多次詢問在一個測驗每個翻譯,所以我需要它是一個NM關係如何在Ruby on Rails中創建關聯之間的關聯
class Version < ActiveRecord::Base
belongs_to :dictionary
has_and_belongs_to_many :translations
end
class Test < ActiveRecord::Base
belongs_to :user
belongs_to :version
has_and_belongs_to_many :translations_versions
end
class Translation < ActiveRecord::Base
belongs_to :aception_own, :class_name => "Aception"
belongs_to :aception_for, :class_name => "Aception"
has_and_belongs_to_many :versions
end
class TranslationsVersion < ActiveRecord::Base
belongs_to :version
belongs_to :translation
has_and_belongs_to_many :test
end
class TranslationsVersionsTest < ActiveRecord::Base
belongs_to :translations_versions
belongs_to :test
end
我的問題是,當我創建一個TranslationsVersionsTest:
tvt = TranslationsVersionsTest.create(translations_versions: tv, test: @test, round: turn)
我得到這個錯誤:
NameError in TranslationsVersionsTestsController#launch
uninitialized constant TranslationsVersionsTest::TranslationsVersions
我認爲有一個關係問題,因爲這個關聯模型之一是其他關聯本身。我的模型輸入得好嗎?
從來就改變了模型就像你說的,然後從來就得到這個其他錯誤:「不能寫未知屬性'translations_version_id'」。該表的名字是translations_versions,因爲它是一種關係,而不是複數。 – Julitillo
@ user1999804確保你的'TranslationsVersionsTest'表包含一個名爲'translations_version_id'的列 – MrYoshiji
不,它沒有,因爲我創建了這個表作爲Translation和Version之間的關係,所以它生成的名字以's'結尾。我這樣做了「rails g scaffold translations_versions version:references translation:references」and「rails g scaffold translations_versions_tests translations_versions:references test:references answer:string round:integer」 – Julitillo