私はこのプロジェクトを実装しようとしています:
http://img7.imagebanana.com/img/cnb46ti2/relationships.png
- 従業員の表示ページで従業員のスキルを表示できるようにしたい
- 従業員には役職があり、すべての役職には、この役職の従業員が知る必要があるスキルがあります
- したがって、私の理解が正しければ、ポジションとスキルには n:m の関係があり、has_many_and_belongs_to_many の関係には結合テーブルが必要です。ポジションには多くのスキルが含まれており、すべてのスキルは多くのポジションに属しているからです。
今私の質問
- position_skill-table -> has_and_belongs_to_many 関係を使用するほうがよいので、このテーブルには独自の ID がありませんか、それとも has_many :through 関係を使用する方がよいですか? has_and_belongs_to_many 関係を使用する方がよいと思います。この関係テーブルには 2 つのキー以外の情報が含まれないためです。私は正しいですか?
- has_and_belongs_to_many - リレーションシップを取る場合、モデルに書き込む必要があるのはそれだけですか?
a)class Position < ActiveRecord :: Base (...) has_and_belongs_to_many :skills (...)
b)class Skill < ActiveRecord :: Base (...) has_and_belongs_to_many :positions (...)
c) db\migratedef self.up create_table :positon_skill, :id => false do |t| (...)
に移動し、その後、ポジションとスキルは相互に関連付けられますか? そうですか?私は何かを忘れましたか?
- そうである場合、従業員の表示ページでスキルを表示するにはどうすればよいですか? 従業員には 1 つの役職があり、この役職にはいくつかのスキルがあります... 従業員の show.html.erb にコードを書き込む必要がありますか? みたいな
<%= employee.position.skill %>
?また、何かをレンダリングする必要がありますか? 申し訳ありませんが、私は非常に混乱しており、ウェブの情報を読みすぎていると思います...または、必要なものを正確に説明しているウェブの説明はありますか?
事前に多くのことを感謝し、その冗長な質問を申し訳ありません.