質問編集履歴
3
編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
DBより抽出したデータをrailsにて処理する際に、格納されているデータは配列なのかハッシュなのかが分からない為、適切なメソッドを利用出来ない。
|
3
3
|
また、配列であると確認出来た際に、配列に用いるメソッドを使用しても、そのメソッドに期待された結果が帰ってこない理由が分かりません...。
|
4
|
-
|
4
|
+
今回のケースでは、配列の要素を取り出すメソッドを使用した際になぜか配列まで取り出して表示されてしまっている・・どうしてこうなってしまったのか。
|
5
5
|
|
6
6
|
### 発生している問題・エラーメッセージ
|
7
7
|
`@members`配列に格納されている`:name`の値を抽出したいが、現状のコードでは
|
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -133,6 +133,12 @@
|
|
133
133
|
```
|
134
134
|
`find`メソッドを用いると先頭に`<Enumerator:`が出現し、結局`name:`の値を取り出すことは叶わず。
|
135
135
|
|
136
|
+
```ruby
|
137
|
+
>> @members[:name]
|
138
|
+
TypeError: no implicit conversion of Symbol into Integer
|
139
|
+
```
|
140
|
+
仮に保存されている形式が`hash`と仮定して、値を抜き取ってもシンボルを数値に変換できないと予想外のエラー。
|
141
|
+
|
136
142
|
### 補足情報(FW/ツールのバージョンなど)
|
137
143
|
|
138
144
|
Rails.5.2.0
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -99,9 +99,15 @@
|
|
99
99
|
>> @members.class
|
100
100
|
=> Student::ActiveRecord_Associations_CollectionProxy
|
101
101
|
```
|
102
|
-
`ActiveRecord_Associations_CollectionProxy`という謎の参照先が見つかったので`Array`メソッドは用いれないと判断。
|
102
|
+
`ActiveRecord_Associations_CollectionProxy`という謎の参照先が見つかったので`Array`メソッドは用いれないと判断。というのも
|
103
103
|
|
104
104
|
```ruby
|
105
|
+
>> @members.id
|
106
|
+
NoMethodError: undefined method `id' for #<Student::ActiveRecord_Associations_CollectionProxy:0x00007fef0611bd98>
|
107
|
+
```
|
108
|
+
同じく格納されている`:id`を`.id`とした結果が`.name`と異なりエラーを吐くからだ。そこで
|
109
|
+
|
110
|
+
```ruby
|
105
111
|
>> @members.target
|
106
112
|
=> [#<Student id: 1, name: "おじいさん", grade: 3, content: "山に住んでいます", created_at: "2018-08-31 03:55:30", updated_at: "2018-08-31 03:55:30", bukatu_id: 1>]
|
107
113
|
>> @members.target.class
|