我想實施這個項目查看:Rails的數據來自的has_many和Has_many_and_belongs_to_many
http://img7.imagebanana.com/img/cnb46ti2/relationships.png
- 我要讓查看員工的節目頁面
- 的對員工的技能員工有一個職位,並且每個職位都具有該職位的員工需要知道的技能
- 因此,如果我理解正確,職位和技能具有n:m關係,並且他們需要has_many_and_belongs_的連接表to_many關係。因爲職位包含許多技能,而且每項技能都屬於許多職位。
現在我的問題
- 的position_skill表 - >是它更好地使用一個has_and_belongs_to_many關係,所以這個表有沒有自己的ID或者是更好地使用的has_many:通過關係?我想最好使用has_and_belongs_to_many關係,因爲這個關係表裏面不會有任何進一步的信息,而不僅僅是兩個鍵。我對嗎?
- 如果我採取has_and_belongs_to_many - 關係,是我需要寫入模型的唯一事情嗎?
一個)class Position < ActiveRecord :: Base (...) has_and_belongs_to_many :skills (...)
b)中class Skill < ActiveRecord :: Base (...) has_and_belongs_to_many :positions (...)
c)中成分貝\遷移def self.up create_table :positon_skill, :id => false do |t| (...)
此後,位置和技能相互連接?是對的嗎?我忘了什麼嗎?
- 如果這是正確的,我該如何讓員工的展示頁上的技能視圖?員工有1個職位,這個職位有幾個技能......我需要寫什麼代碼寫入員工的show.html.erb?像
<%= employee.position.skill %>
?我還需要渲染一些東西嗎?對不起,我很困惑,我想我在網上讀了太多的信息......或者是否有任何網站上的描述,其中正確描述了我需要什麼?
非常感謝,並且很抱歉那個多餘的問題。
@Luke: 感謝這個詳細的答案!可悲的是,它與has_and_belongs_to_many不兼容。這就是我創建所有其他表和它們之間的關係後所做的事情。 1)路由\ create_position_skill 3.我用命令'耙分貝:migrate'所以它沒有創建ID 4.我填的表格position_skill SQLite中DatabaseBrowser 5.然後我就想,如果位置嘗試和技能真的相互關聯 – Kirinriki
所以我寫了rails控制檯'first_skill = Skill.first'(當然工作)和'first_skill.positions'發生了一個錯誤:'ActiveRecord :: Statement Invalid:Could沒有找到表positions_skills' - >好像它沒有找到該表,雖然它被遷移。但我想知道:爲什麼它搜索「positions_skills」而不是「position_skills」? – Kirinriki
與has_and_belongs_to_many提到的方法有關的另一個問題: 我不需要在position_skills的模型中寫入任何內容? Nothing like'belongs_to:position belongs_to:skill'? – Kirinriki