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

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

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

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

Ruby on Rails 6

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

タイムゾーン

タイムゾーンは地球の各地域ごとに定義されている標準時間です。

Q&A

1回答

1755閲覧

タイムゾーン設定が反映されず、コマンドも入力できない

Ai_.

総合スコア2

Cloud9

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

Ruby on Rails 6

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

タイムゾーン

タイムゾーンは地球の各地域ごとに定義されている標準時間です。

0グッド

0クリップ

投稿2020/08/01 07:39

前提・実現したいこと

rails でタイムゾーンをUTCから日本に変更したいが時刻確認のコマンドが(command not found)になり、確認ができず、反映もされない

どのようにすれば反映、コマンド入力ができるのでしょうか?

ここに質問の内容を詳しく書いてください。

rails でアプリを作っているのですが、時刻表示がUTCになっていま
した。
しかし、 Time.current やTime.zone.nameやTime.nowを入力してもcommand not foundになってしまい確認ができません。

ここにいたるまでに

  1. https://qiita.com/aosho235/items/a31b895ce46ee5d3b444 こちらを参考にし、「Ruby側はJSTにし、(DB側)はUTCにする」という方法を取ろうと考えました。

  2. config/application.rb に

config.time_zone = "Tokyo"
config.active_record.default_timezone = :local を記述したがアプリの表示は変わらなかった。

3.変更以前の記録は変わらないのかもしれないと考え、ターミナルでコンソールを起動し、 Time.current などを入力するがcommand not foundになる。 (念のため、ディレクトリも変えたが変わらず)

4.command not foundの解決として https://qiita.com/iwaseasahi/items/6e00883ccd0864ede17e こちらの記事を参考にしたが全く変わらなかった。

補足情報(FW/ツールのバージョンなど)

cloud9にてrails 6.0.3
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
を使用しています。

アドバイスいただけたらと思います。

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

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

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

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

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

guest

回答1

0

command not found はおかしいですね。それって shellのメッセージみたい。
rails の console なら undefined local variable or method です。
rails c しましたか?

投稿2020/08/01 10:49

winterboum

総合スコア23331

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

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

Ai_.

2020/08/01 13:40

ご回答ありがとうございます 今やり直したところ、2020-08-01 13:30:23 +0000と表示されました。先ほどはrails cをしていなかったのかも知れません。 アドバイスありがとうございます。 現在Time.nowと入力したところ2020-08-01 13:30:23 +0000 と表示されているのですが、これは日本時刻にできているのでしょうか? 9時間の時差の感じがしないのですが、、、 ちなみにアプリ上では2020-08-01 19:38:17 +0900 このように表示されています。 目標としてはアプリに表示される時間を日本時間でみやすく表示したいとかんがえております。
winterboum

2020/08/01 19:47

と言われましても、いつ行ったのかの情報が無いとなんとも。 アプリで表示させた時にすかさず Time.now して、その時の時刻を。 あとそのRailsが動いているマシンの時計も知っておく必要があるので、 rails c していない状態での date の戻り地も
Ai_.

2020/08/02 12:07

わかりました、そのアドバイスを行なっている記事を参考にして自分でがんばってみます。 ありがとうございました
winterboum

2020/08/02 12:10

いえ、言いたかったのは 「現在Time.nowと入力したところ2020-08-01 13:30:23 +0000 と表示されているのですが、これは日本時刻にできているのでしょうか?」 といわれても、いつ Time.nowしたかわからないから判断しようがない、と言うことです。
winterboum

2020/08/02 12:11

あ、+00:00見落としてましたすみません。 これJSTではないですね。
Ai_.

2020/08/02 15:10

JTSではなかったですか、、 ちなみに2分前に Time.nowとしたところ2020-08-02 15:08:41 +0000  でした。 config/application.rb に config.time_zone = "Tokyo" config.active_record.default_timezone = :localとは入力しておりまして、保存もしております
winterboum

2020/08/02 22:54

「2分前に」ではなく「08/03 00:08に」と書きましょう。 さて、、、 1) OSのtime zoneを知りたいです。 rails c を抜けて date でどんな結果になりますか 2) config.time_zone = 'Asia/Tokyo' にするとどうなりますか
Ai_.

2020/08/03 01:50

かしこまりました。 (1)ubuntu:~/environment $ date Mon Aug 3 01:46:40 UTC 2020 となっているので、UTCのままのようです (2)ubuntu:~/environment $ date Mon Aug 3 01:48:58 UTC 2020 変わらず、UTCのままのようです。 ちなみに、cloud9で開発を行なっているのですが、関係あるのでしょうか?
Ai_.

2020/08/03 05:17

ありがとうございます いただいたサイトに「docker-composeの変更は一度dockerコンテナを再起動しないと反映されないので、docker-compose down, docker-compose upで起動し直した後に動作確認をしましょう。」とあり、再起動しないと反映されないというのは理解できるのですが、dockerを使っていない状態であればどこを再起動するのかわかりません。 ちなみに上記以外の記述は全て行なっており、ターミナルでは Time.current => Mon, 03 Aug 2020 14:11:28 JST +09:00 と date Mon Aug 3 05:13:52 UTC 2020 と表示されているので、dockerコンテナにあたる箇所がわかれば大丈夫と思っています。 再起動する箇所がわからなかったため、一度IDEを再起動しましたが、変わりませんでした。
winterboum

2020/08/03 08:16

cp /etc/localtime /etc/localtime.org ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime cp /etc/sysconfig/clock /etc/sysconfig/clock.org /etc/sysconfig/clock の  ZONE="UTC" UTC=true を ZONE="Asia/Tokyo" UTC=false sudo su してからでないとだめかも rootになり変わるから操作慎重に
Ai_.

2020/08/03 09:09

ありがとうございます。 ただいまとても慎重になっているのですが、 cp /etc/sysconfig/clock /etc/sysconfig/clock.org こちらを入力すると、 cp: cannot stat '/etc/sysconfig/clock': No such file or directory と出ます。 cp コピー元 コピー先 という意味だと思うので、この場合、/etc/sysconfig/clock がないと思うのですが、別途作るのでしょうか? このコマンドはバックアップだと思うのですが、なければこのコマンドは飛ばすものなのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問