我有两种模式:
class Word < ApplicationRecord
has_many :g_words, class_name: 'Translation', foreign_key: 'g_id'
has_many :v_words, class_name: 'Translation', foreign_key: 'v_id'
end
class Translation < ApplicationRecord
belongs_to :g, class_name: 'Word', required: true
belongs_to :v, class_name: 'Word', required: true
end
表格翻译
t.text "note", limit: 65535
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "g_id"
t.integer "v_id"
在表格单词中,我已插入2个值:
id body
1 Home
2 Maison
当我使用
创建新的翻译时g_id v_id
1 2
在互联网上搜索关于我的问题的很多内容,这里有一篇关于我想要实现的内容的帖子:http://www.emreakkas.com/ruby-on-rails/rails-multiple-columns-to-the-same-tables-key
我试图实施并失败了。
我不知道我是否错误地实现了关联,或者我声明了错误的外键。我真的不知道从哪里开始发现错误。我希望你能帮帮我!谢谢!
答案 0 :(得分:1)
如果您想构建一个翻译表,您可以这样做:
class Word < ApplicationRecord
has_many :translations
has_many :languages, through: :translations
end
class Language < ApplicationRecord
has_many :translations
has_many :words, through: :translations
end
class Translation < ApplicationRecord
belongs_to :language
belongs_to :word
end
但是Rails已经有了a built in i18n API来处理翻译,你应该在重新发明轮子之前先看一下。