67525


うまくインスタンス変数にデータが入らず困っております。  
下記のように、パラメータが送られindexアクションが行われる場合、@documentsが複数の時はエラーになってしまいます。  
どのような方法で改善できるでしょうか。  
しばらく調べましたが、解決できませんでした。  
初学者のため、基本的な質問かと思いますが、誤りご指摘頂けますと幸いでございます。

Ruby 2.5.1  
Rail 5.0.7.2

* * *

params{company_id: 1, user_id: 1}

**controller.rb**

[code]

    def index
      @documents = Document.where(company_id: params[:company_id])
      @items = Item.find(@documents[:item_id])　　＃ここでエラーになっております。以下にすると一つ目のデータが取り出せます。　『@items = Item.find(@documents[0][:item_id])』
    end
    
[/code]

  
・usersテーブル  
id  
name

・companiesテーブル  
id  
name  
user_id

・itemsテーブル  
id  
name  
user_id

・documentsテーブル  
id  
name  
company_id  
item_id  
user_id


CC BY-SA 4.0
2020-06-10T15:11:57.427
67510
2020-06-12T01:16:15.157
2020-06-10T23:50:35.083
40583
40583
question
ruby-on-rails
Ruby on Rails　インスタンス変数にうまくデータが入れられません。


> 以下にすると一つ目のデータが取り出せます。 『@items = Item.find(@documents[0][:item_id])』

上記方式でデータが取り出せているので、

item_idが複数の場合は配列として渡すとよいと思います。  
下記のように `map` を使って配列を生成し、findに渡すとよいと考えます。

[code]

    @items = Item.find(@documents.map(&:item_id))
    
[/code]


CC BY-SA 4.0
2020-06-11T02:56:28.380
67525
2020-06-12T01:16:15.157
2020-06-12T01:16:15.157
9008
9008
67510
answer