documentモデルとitemモデルを紐ずけたいのですが、エラーになってしまいます。
companies.controller.rb
の@items = @documents.items
の箇所でエラーになっております。
解決策わからず、誤りご指摘頂けますと幸いでございます。
初学者ですので、基本的なところが分かっていないのかもしれません。
ご回答をお待ちしております。
エラーメッセージ
NoMethodError in CompaniesController#index
undefined method `item' for #Document::ActiveRecord_Relation:0x00007fad5c334710
Extracted source (around line #5)
companies.controller.rb
ruby
1class CompaniesController < ApplicationController 2 def index 3 @company = Company.find(params[:company_id]) 4 @documents = Document.where(company_id: params[:company_id]) 5 @items = @documents.items 6 end 7end
document.rb
ruby
1class Document < ApplicationRecord 2 belongs_to :company 3 belongs_to :item 4 belongs_to :user 5end 6
item.rb
ruby
1class Item < ApplicationRecord 2 has_many :documents 3 has_many :item_users 4 has_many :users, through: :item_users 5end 6
マイグレーションファイル
ruby
1class CreateItems < ActiveRecord::Migration[5.0] 2 def change 3 create_table :items do |t| 4 t.string :name, null: false 5 t.integer :code, null: false 6 t.timestamps 7 end 8 end 9end 10 11-------- 12 13class CreateDocuments < ActiveRecord::Migration[5.0] 14 def change 15 create_table :documents do |t| 16 t.integer :date, null: false 17 t.string :author, null: false 18 t.string :image 19 t.references :company, foreign_key: true 20 t.references :item, foreign_key: true 21 t.timestamps 22 end 23 end 24end 25
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/10 06:47
2020/06/10 07:27
2020/06/10 07:30
2020/06/10 08:11