Herokuのアプリ名とGitリモートをコマンドラインから変更する

herokuのアプリ名を変更する際に、上の画像のように、herokuのダッシュボードから変更しようとすると、Warningが出て、「変更後はremotesも変更が必要」と言われるので、手動で変更してやらないといけません。その方法でも可能ではありますが、herokuのコマンドで $ heroku apps:rename ~ を使えば、アプリ名とGitリモートurlも一発で変更してくれます。

まずはpush先となるリモートのurlの確認です。ここのリモートurlが通っていなければ、 $ git push heroku master のコマンドが通らないことになります。

そして、変更したい新しいアプリ名をつけて $ heroku apps:rename ~ のコマンドを打つとこのようなメッセージが出て、gitリモートも変更されます。

変更されているのが確認できます。

herokuのダッシュボードからも変更されているのが確認でき、https://new-name.herokuapp.comでアクセスできるようになります。

簡単ですが以上です!ご覧いただき、ありがとうございました!!😌

【Bootstrap】Jambotron(ジャンボトロン)の画像がRails本番環境で表示されない問題の対処

Rails開発でBootstrapのJambotronを使って、画像を配置したとき、開発環境では問題なく表示されましたが、Herokuで本番環境にpushして、確認をしてみると、うまく表示されていなかったので、そんな時の対処方法をメモいたします。

対処前の状態

views

画像はapp/assets/images/配下に置いています。

css

これで、開発環境では画像が表示されていました。

本番ではエラー

しかし、本番でも確認しようとHerokuにpushして、ブラウザを見てみると、画像が表示されていなかったので、$ heroku logs -tコマンドでログを確認してみると、、、

RoutingErrorが出ていました!

対処方法

image_urlというRailsメソッドで呼び出してやることで、本番環境でも、問題なく表示されるようになりました!

css

ログにもエラーは出なくなりました。

その他の解決方法としては、app/assetsではなくて、public/assetsに画像を配置するという方法があります。ですが、これではRailsの推進するAssetPipelineが適用されません。よって、AssetPipelineの仕組みを使って、よりブラウザからの読み込み速度を上げるためにはapp/assets/images ディレクトリに画像を置くことが良いと言えます。

以上です!
どなたかのお役に立てば幸いです!!

「本番環境でCarrierWaveでS3にアップロードした画像が表示されない問題」の対処

Rails + Heroku + CarrierWave + S3 で、画像をアップロードしても、本番環境では画像が正しく表示されなかったので、その対処した時のメモを残したいと思います。

アップロード自体の方法はこちらの記事をご覧ください。

エラー内容

ブラウザで見るとこのようになって、正常に表示されません。

Amazon S3の管理画面で確認すると、問題なくアップロードはされていました。

対処内容

原因はconfig/initializers/carrierwave.rb内の、urlの指定が間違っていたからでした。以下のように asset_hostのurlの指定を修正すると、無事にストレージから画像を取得できました。そもそも、fog_directoryだけでも、画像の表示はできるようなので、asset_hostの1行を削除しても、問題ありませんでした。

config/initializers/carrierwave.rb

以上です!どなたかの参考になれば幸いです!
ありがとうございました!☺️

Herokuへデプロイ時に「assets precompile error」$ npm install yarn で対処

Rails + webpacker で heroku へ push した時に、「assets:precompile」に関するエラーで失敗した時の対処メモです。

バージョンはこちらです

エラー

対処

こちらの記事を参考にして、 $ mpm install yarn -gコマンドを実行。npm 経由で yarn をインストールし直しました。

そして再度、プッシュ。

デプロイ成功しました!
以上です!😀

【Rails】GitHubのアカウント登録 から、Herokuへデプロイまで

ソースコード管理システムのGitHubを活用して、Ruby on Rails アプリケーション開発を効率化しましょう!また、Herokuは無料で使えるクラウドプラットフォームで、Webアプリの公開が簡単にでき、小規模サイトや個人ブログ程度にも使えます。本番アプリとは別でステージング環境も無料で追加できるので、おすすめです。

GitHub アカウント登録


1)まずは、GitHubのトップページにアクセスして、ユーザ名とメールアドレス、パスワードを入力してSign upします。
2)Create an accountをクリック
3)「Choose your personal plan」で無料プランのUnlimited public repositories for free.を選択し、Continue。
4)経験について答えて、Submit
5)登録したメールアドレス宛に認証メールが届くので、そのメールに記載のURLもしくはボタンをクリックして登録完了です。

Gitリポジトリの作成

ルート・ディレクトリで次のコマンドを打ち、Gitリポジトリの新規作成、または既存のGitリポジトリの再初期化を行います。

Gitはすべてのファイルの変更履歴を管理しますが、管理対象に含めたくないファイルは .gitignore で管理します。ここではRails Tutorial を参考にさせていただきます。

.gitignore

Gitに追加、コミット

次のコマンドで、カレントディレクトリ(自分の今いるディレクトリ)以下の全てのファイルをステージングエリアに追加します。「.」がカレントディレクトリを示します。

「-m」フラグで、コミットメッセージをつけて変更をコミット(保存)します。

※「git add .」 と 「git commit -m」 を 一度に行う場合は「git commit -a -m “コミットメッセージ”」です。

GitHubにリモートリポジトリの作成 ~ プッシュ

次にGitHubのリモートリポジトリの作成を行います。

ブラウザで GitHub を開き、 New repository をクリック => Repository name を入力 => Create repository をクリックで作成できます。

次のコマンドでルートディレクトリから、リモートリポジトリを追加することができます。
ここではRepository nameを「test」、 GitHubのusernameを「remonote」としました。それぞれ適宜、変更してください。

登録されているリモートリポジトリの確認は次のコマンドをうつ。

間違えた時にリモートリポジトリを削除する場合はこれです

続いて次のコマンドで、ローカルリポジトリを、リモートリポジトリにプッシュ(同期)します。

Username と Password を聞かれるのでGitHubのアカウント設定のものを入力。

herokuへdeploy

Gemfileに、下記を追記します。pgはherokuで利用するデータベースPostgreSQLで、rails_12factorは、herokuでまとまったアセットを利用するために使用します。

Gemfile

gemのインストール

そして、上記の追加分をコミット。

続いて、herokuのアカウントを作成してください。
https://dashboard.heroku.com/
そしてルートディレクトリで次のコマンドを実行。

Email と Password を入力。

Herokuに新しいアプリケーションを作成。heroku createの後ろにアプリ名を指定します。指定がないとHeroku側で適当なアプリ名が付けられますが、後から変更も可能です。

すでにあるからっておこられました。Heroku全体でユニークにする必要があるようです。そのままURLにも使われるので、他のユーザーに使われていないアプリ名が必要ですね。

そしてHerokuへプッシュすればデプロイとなりますが、、、、

Herokuではsqlite3はサポートしていないということで拒否されました。以下のようにsqlite3は開発環境の指定をします。

Gemfile

コミットしてから再度、Herokuにプッシュしたら今度はデプロイに成功しました。

あとはHerokuでもマイグレーションを実行して、シードデータを流す場合は、追加でコマンド入力してください。

gem ‘seed-fu’使っている場合はseed_fuですね。

これで $ heroku open または https://アプリ名.herokuapp.com でブラウザからアクセスできます。
お疲れ様でした!