0
完成したコーディングプロジェクト、開発者、およびそのロールのデータベースを作成したいとします。属性をレールにhas_and_belongs_to_many関係で定義する
モデルは次のようになります。developers_projectsテーブルは次のようになり
project has_and_belongs_to_many developers
developers has_and_belongs_to_many projects
:
int: developer_id, project_id
string: role
は私が
として、それぞれのIDと名前で3つの開発者と2つのプロジェクトを持って一日をします1, Ashley
2, Bob
3, Charles
1, Tic Tac Toe
2, Snake
実際の役割は
Project 1:
- Manager: Ashley
- Coder: Bob, Charles
Project 2:
- Manager: Charles
- Coder: Ashley
プロジェクトの下でマネージャとコーダオブジェクトを定義することは可能ですか?以下のような
:
class Project < ActiveRecord::Base
has_and_belongs_to_many :developers
has_and_belongs_to_many :managers, :class_name => "developers", :condition => "role = 'manager'"
has_and_belongs_to_many :coders, :class_name => "developers", :condition => "role = 'coder'"
end
(これは動作しません)
が
は私がDeveloper.find(1).projectsを試してみましたが、それは私に初期化されていない一定の開発を提供します::プロジェクト。 Developer.find(1).project_rolesは正しく返しますが、 – rickypai
実際には、私はプロジェクトのbelongs_toが、ロールなしで定義されるべきであることを認識しました。編集と受け入れ。ありがとうございました! – rickypai
@shiroin:はい!私たちは私たちの、あるいは他のいくつかの間違いについて学びます:) – Voldy