質問編集履歴

2

誤字修正

2018/09/01 09:16

投稿

shi6na
shi6na

スコア14

test CHANGED
File without changes
test CHANGED
@@ -178,7 +178,7 @@
178
178
 
179
179
 
180
180
 
181
- ちなみに、gon ```<%= include_gon(init: true)%>```はapplication.html.erbの<head>内に記載してあります。(上記コードではapplication.html.erbは割愛しております)
181
+ ちなみに、gonを使用するための ```<%= include_gon(init: true)%>```はapplication.html.erbの<head>内に記載してあります。(上記コードではapplication.html.erbは割愛しております)
182
182
 
183
183
 
184
184
 

1

js.erbによるrubyコード埋め込みについて追記

2018/09/01 09:16

投稿

shi6na
shi6na

スコア14

test CHANGED
@@ -1 +1 @@
1
- 【rails】gonはアクションが違うと反応しなのでしょうか?【javascript】
1
+ 【rails】コントローラで定義した変数をapplication.js.erbで使たい【javascript】
test CHANGED
@@ -8,9 +8,9 @@
8
8
 
9
9
  2. functionName()内からhogeコントローラのwriteアクションに値を送信
10
10
 
11
- 3. 送られてきた値をもとに、writeアクション内でgon変数作成
11
+ 3. 送られてきた値をもとに、writeアクション内で変数作成
12
-
12
+
13
- 4. functionName()にて作成されたgon変数を使用してセレクトボックスの内容を変更
13
+ 4. functionName()にて作成された変数を使用してセレクトボックスの内容を変更
14
14
 
15
15
 
16
16
 
@@ -110,7 +110,7 @@
110
110
 
111
111
  for(var i=0; i<gon.name.length; i++){
112
112
 
113
- select2.options[j] = new Option(gon.name[i],gon.code[i]); //ここでコントローラの変数(値)を使いたい
113
+ select2.options[j] = new Option(@name[i],@code[i]); //ここでコントローラの変数(値)を使いたい
114
114
 
115
115
  }
116
116
 
@@ -162,9 +162,9 @@
162
162
 
163
163
  @result.length.times do |j|
164
164
 
165
- gon.name[j] = @result[j][name] #ここでgon変数作成
165
+ @name[j] = @result[j][name] #ここで変数作成
166
-
166
+
167
- gon.code[j] = @result[j][code]
167
+ @code[j] = @result[j][code]
168
168
 
169
169
  end
170
170
 
@@ -178,19 +178,23 @@
178
178
 
179
179
 
180
180
 
181
- ちなみに、 ```<%= include_gon(init: true)%>```はapplication.html.erbの<head>内に記載してあります。(上記コードではapplication.html.erbは割愛しております)
181
+ ちなみに、gon ```<%= include_gon(init: true)%>```はapplication.html.erbの<head>内に記載してあります。(上記コードではapplication.html.erbは割愛しております)
182
182
 
183
183
 
184
184
 
185
185
  ### 詰まっている箇所
186
186
 
187
- functionName()を呼び出した後、Ajax通信が完了(成功)するのを見計ってconsoleでgon変数名やgon.allを叩いてもundefinedとなってしまいます。
187
+ gon変数を使おうとし、functionName()を呼び出した後、Ajax通信が完了(成功)するのを見計ってconsoleでgon変数名やgon.allを叩いてもundefinedとなってしまいます。
188
188
 
189
189
  コントローラが同じでも、定義するアクションが違えばやはりgon変数は有効でなくなってしまうのでしょうか。
190
190
 
191
-
191
+ (9/1追記)js.erb形式なのでコントローラで作った変数が<%= @変数名 %>で使えるとのことだったので(上記コードはその方向で修正してあります)、試してみましたが、変数の中身が無いような挙動をします。(例:console.log(<%= @変数名 %>);とすると空白行が出力される)
192
+
192
-
193
+ 変数を定義する場所がまずいのでしょうか?
194
+
195
+
196
+
193
- また、gon以外にもコントローラで作成した変数をjsで使える方法がありましたらご教授頂けますと幸いです。
197
+ また、上記以外にもコントローラで作成した変数をjsで使える方法がありましたらご教授頂けますと幸いです。
194
198
 
195
199
  ### ちなみに
196
200