リレーション先のデータの取得ができません。基本的な内容かと思いますが、数時間調べ考えても解決できずお力をお貸しください。
下記テーブルはdocumentsテーブルが「一」に対して、他テーブルが「多」の関係です。そのため、documentsテーブルは中間テーブルとなり多対多のリレーションができています。
コントローラーのindexアクションで、current_userのデータを持ったComapnyオブジェクトを作りたいのですが、どのようにすればよいでしょうか。
コントローラー
def index @company = Company. #ここをどのように記載すべきでしょうか end
データベース
・usersテーブル id name ・companiesテーブル id name ・itemsテーブル id name ・documentsテーブル id name company_id item_id user_id
user.rb
class User < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :documents has_many :documents, foreign_key: 'user_id' has_many :companies, through: :documents has_many :items, through: :documents end
company.rb
class Company < ApplicationRecord validates :name, presence: true has_many :documents has_many :documents, foreign_key: 'company_id' has_many :users, through: :documents end
item.rb
class Item < ApplicationRecord has_many :documents has_many :documents, foreign_key: 'item_id' has_many :users, through: :documents end
document.rb
class Document < ApplicationRecord belongs_to :company belongs_to :item belongs_to :user end
Ruby 2.5.1
Rail 5.0.7.2
回答1件
あなたの回答
tips
プレビュー