質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

Q&A

0回答

229閲覧

Rails Active Record 関連付けで,多対多の関係が複雑でモデルの設計に困っています.

shun4shun3

総合スコア12

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

0グッド

0クリップ

投稿2017/12/07 06:22

編集2017/12/07 10:35

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問