Rails で,モデルの設定に悩んでいます.
以下のようなことを実現したいのですが,うまくいかないため,Model, Migrationファイルに何を書けばいいのか教えていただきたいです.
以下のモデルが実現したいものです.
ruby
1 2# model 3# 中間テーブル 4class ProjectUser < ApplicationRecord 5 belongs_to :user 6 belongs_to :project 7end 8 9class User < ApplicationRecord 10 11 has_many :project_users 12 # has_many :projects, through: :project_users 13 has_many :project_as_owner 14 has_many :project_as_follwer 15end 16 17class Project < ApplicationRecord 18 has_many :project_users 19 # has_many :users, through: :project_users 20 has_many :follower, class_name: 'User' 21 has_one :owner, class_name: 'User' 22end 23
以下のように値を取得したいです.
# result user.projects_as_owner user.project_as_follower project.owner project.followers
追記:
shishou == followerと変えました.
以下のように書き,
project.owner
project.shishous
user.project_as_owner
はコンソールでセット,取得できるようになったのですが,
project.shishous << user1
と入れた時,
user1.projects_as_shishou が表示されないようです.
ruby
1class Project < ApplicationRecord 2 3 has_many :project_shishous 4 has_many :shishous, through: :project_shishous, source: 'shishou' 5 6 belongs_to :owner, class_name: "User", foreign_key: "owner_id" 7 8end 9 10class User < ApplicationRecord 11 has_many :project_shishous 12 has_many :projects_as_shishou, through: :project_shishous, source: 'project' 13 14 has_many :projects_as_owner, class_name: 'Project', foreign_key: 'owner_id' 15end 16 17class ProjectShishou < ApplicationRecord 18 belongs_to :shishou, class_name: 'User', foreign_key: 'shishou_id' 19 belongs_to :project 20end 21 22 23
あなたの回答
tips
プレビュー