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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

2回答

3718閲覧

Railsで数値江尾3桁ずつ「、」で区切るにはどうすればいいでしょうか?

koume

総合スコア458

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

1グッド

2クリップ

投稿2017/09/29 03:16

Rails5.1.3でWebアプリケーションの制作、勉強中です。数値を表示する際に3桁ずつ区切って表示したいので、いろいろ調べて
コードは見つけました。しかし、どこに記述してどのようにメソッドを呼び出して対応させたらいいのかわからずに困っています。
やりたいこと及びコードは以下になります。

1、やりたいこと
・データベースの数値を3桁に区切って表示したい。

2、コードは以下になります。
・コードの中で「numstr」とありますがこれは何を意味しているのでしょうか?

調べたコード(これで3桁に区切れるらしい) def commify(numstr) int, frac = numstr.split(".", 2) int = int.gsub(/(\d)(?=\d{3}+$)/,'\1,') int << "." << frac if frac return int end

このコードをどこに記述し、このメソッドをどう使えばいいのかがわからないのです。(コントローラでしょうか?)
htmlは以下です。

show.html.erb <% @title = '得点一覧' %> <h1><%= @title %></h1> <div class="table-wrapper"> <table class="attributes"> <tr><th colspan= "5">得点実績</th></tr> <% p1 = CustomerPresenter.new(@customer, self) %> <tr><th>氏名</th><td><%= p1.full_name %></td></tr> <tr><th>ニックネーム</th><td><%= p1.nickname %></td></tr> <% p5 = SeventeenPresenter.new(@seventeen, self) %> <tr><th>年</th><td><%= p5.year %></td></tr> <tr><th>1月</th><td><%= p5.m_1 %></td></tr> <tr><th>2月</th><td><%= p5.m_2 %></td></tr> <tr><th>3月</th><td><%= p5.m_3 %></td></tr> <tr><th>1クオーター</th><td><%= p5.c_1 %></td></tr> <tr><th>4月</th><td><%= p5.m_4 %></td></tr> <tr><th>5月</th><td><%= p5.m_5 %></td></tr> <tr><th>6月</th><td><%= p5.m_6 %></td></tr> <tr><th>2クオーター</th><td><%= p5.c_2 %></td></tr> <tr><th>7月</th><td><%= p5.m_7 %></td></tr> <tr><th>8月</th><td><%= p5.m_8 %></td></tr> <tr><th>9月</th><td><%= p5.m_9 %></td></tr> <tr><th>3クオーター</th><td><%= p5.c_3 %></td></tr> <tr><th>10月</th><td><%= p5.m_10 %></td></tr> <tr><th>11月</th><td><%= p5.m_11 %></td></tr> <tr><th>12月</th><td><%= p5.m_12 %></td></tr> <tr><th>4クオーター</th><td><%= p5.c_4 %></td></tr> </table> </div> <div class="table-wrapper"> <div class="links"> <%= link_to '個人成績表画面へ戻る', :individual_customer_record %> </div> </div> <div class="table-wrapper"> <div class="links"> <%= link_to 'トップ画面へ戻る', :staff_root %> </div> </div>

m_1m_12, c_1c_4カラムに数値が入っています。この数値を3桁ずつに区切って表示したいのです。
特に def commify(numstr) の numstr がわからないのですが、このままでいいのか、それともカラム名とか何か他の値などを
記述するのでしょうか? 使い方と合わせて教えてください。
どなたか詳しい方、教えていただけないでしょうか?よろしくお願いします。

DrqYuto👍を押しています

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

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

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

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

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

guest

回答2

0

MySQL, CentOS, Vagrant などの明らかに関係ないタグは付けないでくださいね。モラルを考えて下さい。

number_with_delimiter() ヘルパーを使えば簡単にできます。

number_with_delimiter - リファレンス - - Railsドキュメント

投稿2017/09/29 03:40

miyahan

総合スコア3095

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

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

koume

2017/09/29 03:47

回答ありがとうございます。タグはできるだけ多く記入するべきだと思っていました。指摘いただきありがとうございます。今後、気を付けます。 教えていただいたコードでやってみたいと思います。今後ともよろしくお願いします。
guest

0

ベストアンサー

データベースの数値を3桁に区切って表示したい。

数値を3桁に区切るためのヘルパーがRailsには既にありますので、そちらを使ったほうが良いです。
<%= number_with_delimiter(数値) %>
デフォルトでは、カンマ区切りとなりますが、区切り文字をカンマ以外にするオプションもあります。
細かい使い方は、rails number_with_delimiterでググるとたくさん見つかりますよ。

コードの中で「numstr」とありますがこれは何を意味しているのでしょうか?

一般的に、プログラミングではnumはnumberの略、strはstringの略としてよく使用されます。
この場合は、num+strなので、数値形式の文字列(Stringのインスタンス)を指定してほしいという意図があると推測できます。
ただの数値でよければ、numとするべきなので。

投稿2017/09/29 03:39

mingos

総合スコア4025

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

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

koume

2017/09/29 04:26

回答ありがとうございます。おかげさまでうまく表示できました。 今後ともよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問