質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

2回答

1605閲覧

Ruby on Railsでリアルタイムなランキングを作る方法

rura

総合スコア70

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/11/16 13:46

編集2017/11/22 05:51

###前提・実現したいこと
ご閲覧ありがとうございます。
ユーザーが今できるプログラミング言語を登録したとき
結果として、一番人気のプログラミング言語は何かというランキングページを作りたいのですが、
どうしたらよいでしょうか?

###該当のソースコード
プログラミング言語テーブル

class CreatePrograms < ActiveRecord::Migration def change create_table :programs do |t| t.string :pmgcname  #プログラミング言語名 t.integer :pmgcopemem #出来る人の人数 t.integer :pmgshortagemem #この言語の仕事で不足してる人数 t.text :pmgRemarks #備考 t.timestamps null: false end end end

プログラミング言語のコントローラー

class ProgramsController < ApplicationController before_action :set_program, only: [:show, :edit, :update, :destroy] # GET /programs # GET /programs.json def index @programs = Program.all end # GET /programs/1 # GET /programs/1.json def show end # GET /programs/new def new @program = Program.new end # GET /programs/1/edit def edit end # POST /programs # POST /programs.json def create @program = Program.new(program_params) respond_to do |format| if @program.save format.html { redirect_to @program, notice: '登録されました.' } format.json { render :show, status: :created, location: @program } else format.html { render :new } format.json { render json: @program.errors, status: :unprocessable_entity } end end end # PATCH/PUT /programs/1 # PATCH/PUT /programs/1.json def update respond_to do |format| if @program.update(program_params) format.html { redirect_to @program, notice: 'Program was successfully updated.' } format.json { render :show, status: :ok, location: @program } else format.html { render :edit } format.json { render json: @program.errors, status: :unprocessable_entity } end end end # DELETE /programs/1 # DELETE /programs/1.json def destroy @program.destroy respond_to do |format| format.html { redirect_to programs_url, notice: 'Program was successfully destroyed.' } format.json { head :no_content } end end private # Use callbacks to share common setup or constraints between actions. def set_program @program = Program.find(params[:id]) end # Never trust parameters from the scary internet, only allow the white list through. def program_params params.require(:program).permit(:pmgcname, :pmgcopemem, :pmgshortagemem, :pmgRemarks) end end

ランキングのコントローラー

class RankingsController < ApplicationController def programming programmings = Program.group(:pmgcname).order('count_all desc').limit(10).count.keys #@Programs = Program.find(pmgcnames).sort_by{|pmgcname| pmgcnames.index(pmgcname.pmgcname)} end def frameWork end def database end def varmanage end def cmsdevelop end def optsystem end def Middleware end def appli end def Language end end

ランキングのビュー

<div class="col-sm-8">  <div class="panel panel-primary"> <div class="panel-heading">このページについて</div> <div class="panel-body">こちらのサイトは企業が現在有しているITにおける作業環境が上位を示しています。</div> </div>  <div class="panel panel-primary"> <div class="panel-heading">プログラミング言語取扱件数の上位10個</div> <table class="table table-striped table-bordered"> <tbody> <tr class="danger"> <th>順位</th> <th>カウンター数</th> <th>ITスキル名</th> </tr>        <td></td>   <td></td> <td></td> </tr> </tbody> </table> </div>  </div>

###補足情報(言語/FW/ツール等のバージョンなど)
Ruby

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

試してないので動くかはわかりませんが。

ruby

1@programs = Program.all.group(:pmgcname).order("count(pmgcname) desc")

html

1<%= @programs.each_with_index(1) do |program, i| %> 2<tr class="danger"> 3 <th><%= i %></th> 4 <th><%= Program.where(pmgcname: program.pmgcname).count(:pmgcname) %></th> 5 <th><%= program.pmgcname %></th> 6</tr> 7<% end %>

プログラミング言語名は別にテーブルを作って関連付けさせる方がいいと思います。

そうしないと同じ言語でも書き方で別の扱いになってしまうので。
例 Ruby ruby ルビー

投稿2018/03/04 12:11

shiom

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2017/11/21 14:16

rura

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問