私はレールに慣れていないので、多くの人と同じように、ActiveRecord と関連付けがどのように機能するかを理解するのに苦労しているようです。
ユーザー、プロジェクト、タスクの 3 つのモデルがあります。
Class User < ActiveRecord::Base
has_many :projects
has_many :tasks
end
Class Project < ActiveRecord::Base
has_many :tasks
belongs_to :user
end
Class Task < ActiveRecord::Base
belongs_to :projects
belongs_to :user
end
プロジェクトとタスクの両方にフィールドがありますuser_id
。タスクにはフィールドがありますproject_id
。
ユーザーを通じてすべてのプロジェクトとタスクを検索できることを期待しています。ただし、プロジェクトとタスクがあるにもかかわらず、試行するたびに空の配列が得られます。
usr = User.find(1)
=> [User id: 1, name: "Some Guy"]
usr.projects
=> []
usr.tasks
=> []
プロジェクトを介してタスクを照会すると機能します。
proj = Project.find(1)
=> [#<Project id: 1, user_id: 1, description: "Some Project">]
proj.tasks
=> [#<Task id: 1, user_id: 1, project_id: 1, description: "Do Something">,
#<Task id: 2, user_id: 1, project_id: 1, description: "Do another thing">]
ユーザーに接続されている他のモデルがあり、正しく動作しているため、has_many
との設定は正しいと思います。belongs_to
私が見逃しているアイデアはありますか?