質問編集履歴

1

内容を変更しました

2017/11/22 05:51

投稿

rura
rura

スコア70

test CHANGED
@@ -1 +1 @@
1
- Ruby on Railsで部門ごとのリアルタイムなランキングを作る方法
1
+ Ruby on Railsでリアルタイムなランキングを作る方法
test CHANGED
@@ -1,59 +1,279 @@
1
- ---
2
-
3
1
  ###前提・実現したいこと
4
2
 
5
- 皆さま、こんちわ。Ruby初心者です。
6
-
7
- システム会社の開発環境や使用している技術を閲覧できるサービスを作ってます。
8
-
9
- 今回、企業ごとに多く使われている技術部門を1か月毎に代わる
10
-
11
- ランキングトップ3を作なあと考えております。
3
+ ご閲覧あがとうございます。
12
-
4
+
13
- 例)月(10月)プログラミング部門
5
+ ユーザーができるプログラミング言語を登録したとき
14
-
15
- 1.JAVA
6
+
16
-
17
- 2.PHP
18
-
19
- 3.C#
20
-
21
-
22
-
23
- 例)今月(11月)プログラミング部門
24
-
25
- 1.Ruby
26
-
27
- 2.C#
28
-
29
- 3.Kotlin
30
-
31
-
32
-
33
- ###発生している問題
34
-
35
-
36
-
37
- ```
38
-
39
- それでルビーオンレイルズでこなもの実装するにはどうしらよか?
7
+ 結果として、一番人気プログラミング言語は何かといランキングページ作りたいのですが、
40
-
8
+
41
- 分か
9
+ どうしたいでしょうか?
42
-
43
- 参考になるようなソースやサイトがあれば、
10
+
44
-
45
- お願いします。
11
+
46
-
47
- ```
12
+
13
+
48
14
 
49
15
 
50
16
 
51
17
  ###該当のソースコード
52
18
 
53
- ビュー(プログラミング言語
19
+ プログラミング言語テーブル
54
20
 
55
21
  ```ここに言語を入力
56
22
 
23
+ class CreatePrograms < ActiveRecord::Migration
24
+
25
+ def change
26
+
27
+ create_table :programs do |t|
28
+
29
+ t.string :pmgcname  #プログラミング言語名
30
+
31
+ t.integer :pmgcopemem #出来る人の人数
32
+
33
+ t.integer :pmgshortagemem #この言語の仕事で不足してる人数
34
+
35
+ t.text :pmgRemarks #備考
36
+
37
+
38
+
39
+ t.timestamps null: false
40
+
41
+ end
42
+
43
+ end
44
+
45
+ end
46
+
47
+
48
+
49
+ ```
50
+
51
+ プログラミング言語のコントローラー
52
+
53
+ ```
54
+
55
+ class ProgramsController < ApplicationController
56
+
57
+ before_action :set_program, only: [:show, :edit, :update, :destroy]
58
+
59
+
60
+
61
+ # GET /programs
62
+
63
+ # GET /programs.json
64
+
65
+ def index
66
+
67
+ @programs = Program.all
68
+
69
+ end
70
+
71
+
72
+
73
+ # GET /programs/1
74
+
75
+ # GET /programs/1.json
76
+
77
+ def show
78
+
79
+ end
80
+
81
+
82
+
83
+ # GET /programs/new
84
+
85
+ def new
86
+
87
+ @program = Program.new
88
+
89
+ end
90
+
91
+
92
+
93
+ # GET /programs/1/edit
94
+
95
+ def edit
96
+
97
+ end
98
+
99
+
100
+
101
+ # POST /programs
102
+
103
+ # POST /programs.json
104
+
105
+ def create
106
+
107
+ @program = Program.new(program_params)
108
+
109
+
110
+
111
+ respond_to do |format|
112
+
113
+ if @program.save
114
+
115
+ format.html { redirect_to @program, notice: '登録されました.' }
116
+
117
+ format.json { render :show, status: :created, location: @program }
118
+
119
+ else
120
+
121
+ format.html { render :new }
122
+
123
+ format.json { render json: @program.errors, status: :unprocessable_entity }
124
+
125
+ end
126
+
127
+ end
128
+
129
+ end
130
+
131
+
132
+
133
+ # PATCH/PUT /programs/1
134
+
135
+ # PATCH/PUT /programs/1.json
136
+
137
+ def update
138
+
139
+ respond_to do |format|
140
+
141
+ if @program.update(program_params)
142
+
143
+ format.html { redirect_to @program, notice: 'Program was successfully updated.' }
144
+
145
+ format.json { render :show, status: :ok, location: @program }
146
+
147
+ else
148
+
149
+ format.html { render :edit }
150
+
151
+ format.json { render json: @program.errors, status: :unprocessable_entity }
152
+
153
+ end
154
+
155
+ end
156
+
157
+ end
158
+
159
+
160
+
161
+ # DELETE /programs/1
162
+
163
+ # DELETE /programs/1.json
164
+
165
+ def destroy
166
+
167
+ @program.destroy
168
+
169
+ respond_to do |format|
170
+
171
+ format.html { redirect_to programs_url, notice: 'Program was successfully destroyed.' }
172
+
173
+ format.json { head :no_content }
174
+
175
+ end
176
+
177
+ end
178
+
179
+
180
+
181
+ private
182
+
183
+ # Use callbacks to share common setup or constraints between actions.
184
+
185
+ def set_program
186
+
187
+ @program = Program.find(params[:id])
188
+
189
+ end
190
+
191
+
192
+
193
+ # Never trust parameters from the scary internet, only allow the white list through.
194
+
195
+ def program_params
196
+
197
+ params.require(:program).permit(:pmgcname, :pmgcopemem, :pmgshortagemem, :pmgRemarks)
198
+
199
+ end
200
+
201
+ end
202
+
203
+ ```
204
+
205
+ ランキングのコントローラー
206
+
207
+ ```
208
+
209
+ class RankingsController < ApplicationController
210
+
211
+ def programming
212
+
213
+ programmings = Program.group(:pmgcname).order('count_all desc').limit(10).count.keys
214
+
215
+ #@Programs = Program.find(pmgcnames).sort_by{|pmgcname| pmgcnames.index(pmgcname.pmgcname)}
216
+
217
+ end
218
+
219
+
220
+
221
+ def frameWork
222
+
223
+ end
224
+
225
+
226
+
227
+ def database
228
+
229
+ end
230
+
231
+
232
+
233
+ def varmanage
234
+
235
+ end
236
+
237
+
238
+
239
+ def cmsdevelop
240
+
241
+ end
242
+
243
+
244
+
245
+ def optsystem
246
+
247
+ end
248
+
249
+
250
+
251
+ def Middleware
252
+
253
+ end
254
+
255
+
256
+
257
+ def appli
258
+
259
+ end
260
+
261
+
262
+
263
+ def Language
264
+
265
+ end
266
+
267
+ end
268
+
269
+
270
+
271
+ ```
272
+
273
+ ランキングのビュー
274
+
275
+ ```
276
+
57
277
  <div class="col-sm-8">
58
278
 
59
279
   <div class="panel panel-primary">
@@ -66,7 +286,7 @@
66
286
 
67
287
   <div class="panel panel-primary">
68
288
 
69
- <div class="panel-heading">プログラミング言語取扱件数の上位3個</div>
289
+ <div class="panel-heading">プログラミング言語取扱件数の上位10個</div>
70
290
 
71
291
  <table class="table table-striped table-bordered">
72
292
 
@@ -80,17 +300,13 @@
80
300
 
81
301
  <th>ITスキル名</th>
82
302
 
83
- <th>備考</th> 
84
-
85
303
  </tr>
86
304
 
87
- <tr>
88
-
89
- <th></th>
90
-
91
- <td></td>
305
+        <td></td>
92
-
306
+
93
- <td></td>
307
+   <td></td>
308
+
309
+ <td></td>
94
310
 
95
311
  </tr>
96
312
 
@@ -106,260 +322,8 @@
106
322
 
107
323
  ```
108
324
 
109
- DBのプログラミング言語のカラム
110
-
111
- ```
112
-
113
- class CreatePrograms < ActiveRecord::Migration
114
-
115
- def change
116
-
117
- create_table :programs do |t|
118
-
119
- t.string :pmgcname
120
-
121
- t.integer :pmgcopemem
122
-
123
- t.integer :pmgshortagemem
124
-
125
- t.text :pmgRemarks
126
-
127
-
128
-
129
- t.timestamps null: false
130
-
131
- end
132
-
133
- end
134
-
135
- end
136
-
137
- ```
138
-
139
- プログラミング言語のコントローラー
140
-
141
- ```
142
-
143
- class ProgramsController < ApplicationController
144
-
145
- before_action :set_program, only: [:show, :edit, :update, :destroy]
146
-
147
-
148
-
149
- # GET /programs
150
-
151
- # GET /programs.json
152
-
153
- def index
154
-
155
- @programs = Program.all
156
-
157
- end
158
-
159
-
160
-
161
- # GET /programs/1
162
-
163
- # GET /programs/1.json
164
-
165
- def show
166
-
167
- end
168
-
169
-
170
-
171
- # GET /programs/new
172
-
173
- def new
174
-
175
- @program = Program.new
176
-
177
- end
178
-
179
-
180
-
181
- # GET /programs/1/edit
182
-
183
- def edit
184
-
185
- end
186
-
187
-
188
-
189
- # POST /programs
190
-
191
- # POST /programs.json
192
-
193
- def create
194
-
195
- @program = Program.new(program_params)
196
-
197
-
198
-
199
- respond_to do |format|
200
-
201
- if @program.save
202
-
203
- format.html { redirect_to @program, notice: '登録されました.' }
204
-
205
- format.json { render :show, status: :created, location: @program }
206
-
207
- else
208
-
209
- format.html { render :new }
210
-
211
- format.json { render json: @program.errors, status: :unprocessable_entity }
212
-
213
- end
214
-
215
- end
216
-
217
- end
218
-
219
-
220
-
221
- # PATCH/PUT /programs/1
222
-
223
- # PATCH/PUT /programs/1.json
224
-
225
- def update
226
-
227
- respond_to do |format|
228
-
229
- if @program.update(program_params)
230
-
231
- format.html { redirect_to @program, notice: 'Program was successfully updated.' }
232
-
233
- format.json { render :show, status: :ok, location: @program }
234
-
235
- else
236
-
237
- format.html { render :edit }
238
-
239
- format.json { render json: @program.errors, status: :unprocessable_entity }
240
-
241
- end
242
-
243
- end
244
-
245
- end
246
-
247
-
248
-
249
- # DELETE /programs/1
250
-
251
- # DELETE /programs/1.json
252
-
253
- def destroy
254
-
255
- @program.destroy
256
-
257
- respond_to do |format|
258
-
259
- format.html { redirect_to programs_url, notice: 'Program was successfully destroyed.' }
260
-
261
- format.json { head :no_content }
262
-
263
- end
264
-
265
- end
266
-
267
-
268
-
269
- private
270
-
271
- # Use callbacks to share common setup or constraints between actions.
272
-
273
- def set_program
274
-
275
- @program = Program.find(params[:id])
276
-
277
- end
278
-
279
-
280
-
281
- # Never trust parameters from the scary internet, only allow the white list through.
282
-
283
- def program_params
284
-
285
- params.require(:program).permit(:pmgcname, :pmgcopemem, :pmgshortagemem, :pmgRemarks)
286
-
287
- end
288
-
289
- end
290
-
291
-
292
-
293
- ```
294
-
295
- ランキングのコントローラー
296
-
297
- ```
298
-
299
- class RankingsController < ApplicationController
300
-
301
- def programming
302
-
303
- end
304
-
305
-
306
-
307
- def frameWork
308
-
309
- end
310
-
311
-
312
-
313
- def database
314
-
315
- end
316
-
317
-
318
-
319
- def varmanage
320
-
321
- end
322
-
323
-
324
-
325
- def cmsdevelop
326
-
327
- end
328
-
329
-
330
-
331
- def optsystem
332
-
333
- end
334
-
335
-
336
-
337
- def Middleware
338
-
339
- end
340
-
341
-
342
-
343
- def appli
344
-
345
- end
346
-
347
-
348
-
349
- def Language
350
-
351
- end
352
-
353
- end
354
-
355
-
356
-
357
- ```
358
-
359
-
360
-
361
325
 
362
326
 
363
327
  ###補足情報(言語/FW/ツール等のバージョンなど)
364
328
 
365
- Ruby on Rails4
329
+ Ruby