teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

記述表記ミス変更

2020/07/15 09:04

投稿

Malson
Malson

スコア10

title CHANGED
File without changes
body CHANGED
@@ -25,7 +25,7 @@
25
25
  ```
26
26
 
27
27
  **この状態で、javascriptに、私が望むハッシュの配列の変数として渡すことがで来ているのかできていないのか?が全くわからないです。**
28
- Rubyの形式のデータをjavascriptが使うことができるようにはならないので
28
+ 多分、Rubyの形式のデータをjavascriptが使うことができるようにはならないので、このまま代入してもダメなんだろうなとは思っています。
29
29
 
30
30
  javascriptで動かすのに、ランダムなレコード番号の2つのキーのそれぞれの値を呼び出して表示させるという↓のようなことを考えていますが、
31
31
 

1

詳細にしました

2020/07/15 09:04

投稿

Malson
Malson

スコア10

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,10 @@
1
1
  ### 前提・実現したいこと
2
2
  テーブルの中に格納している複数のデータを、ハッシュ形式の配列で取り出した上で、ビュー画面上でjavascriptを使用して動かしたい。
3
+ javascriptで動かす上で、データはハッシュキーを持った配列にしたい。
3
4
 
4
5
 
6
+ ### 現状のやり方
7
+
5
8
  Size テーブル
6
9
  |id|length|width|weight|timestamp|
7
10
  |--|------|-----|-|-|
@@ -9,8 +12,34 @@
9
12
  |2|16.0|8.0|11.5|***|
10
13
  |3|17.0|8.4|17.0|***|
11
14
 
15
+ この時、インスタンスを@sizeとして、@size.select(:length, :width)なので、
12
- 、[{length: 15.0, width: 7.5}, {length: 16.0, width: 8.0}, length: 17.0, width: 8.4}]
16
+ ターミナル上では、[{length: 15.0, width: 7.5}, {length: 16.0, width: 8.0}, length: 17.0, width: 8.4}]と表示させることができますが、
13
- のように、レコード毎に、特定の指定したカラムの情報だけをハッシュ形式格納された配列をインスタンス変数として取り出すことができるでしょう
17
+ HTMLはSize::ActiveRecord_AssociationRelation:0x00*******としか表示されない。
18
+ ```haml
19
+ #hidden_info
14
- もしできるのであれば、どのように定義したら良いでしょうか?
20
+ - @size.select(:question, :answer)
21
+ ```
22
+ ```javascript
23
+ var test = document.getElementById('hidden_info');
24
+ //この時にconsole.log(test)で見てもSize::ActiveRecord_AssociationRelation:0x00*******としか表示されない
25
+ ```
15
26
 
27
+ **この状態で、javascriptに、私が望むハッシュの配列の変数として渡すことがで来ているのかできていないのか?が全くわからないです。**
28
+ Rubyの形式のデータをjavascriptが使うことができるようにはならないので
29
+
16
- 指定の配列を取得のにpluckメソッドの存在までは知りまたが、ハッシュ形式ではなのでどしたもと考えています
30
+ javascriptで動かすのに、ランダムなレコー番号2つのキーのそれぞれの値を呼び出て表示させるというようなこ考えていますが、
31
+
32
+ ```javascript
33
+ var display1 = document.getElementById('side1')
34
+ var display2 = document.getElementById('side2')
35
+ var num = Math.floor(Math.random() * test.length);
36
+ //test.lengthは特にエラーが出ていないが、console.logではundefined
37
+ display1.innerHTML = test[num]['length'];
38
+ //lengthというプロパティがないと表示される
39
+ display2.innerHTML = test[num]['width'];
40
+ //widthというプロパティがないと表示される
41
+ ```
42
+
43
+ となるので、おそらく変数を代入する前の段階でなんとかしなければいけないとは思うのですが、どうやったら良いか全くわかりません。
44
+
45
+ どうかアドバイスをお願いいたします。