k01ken’s b10g

He110 W0r1d!

Rails 5を使っていて組み込みサーバーPuma起動時にA server is already runningとなったときの解決法

開発環境はWindows7 Professional(32bit) + Ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]+ Rails 5.1.6。

他に組み込みサーバーPumaが起動していない状態で、組み込みサーバーPumaを起動させると、なぜか、以下のようなメッセージが表示される。

c:\hr>rails s
=> Booting Puma
=> Rails 5.1.6 application starting in development
=> Run `rails server -h` for more startup options
A server is already running. Check c:/hr/tmp/pids/server.pid.
Exiting

解決法は、メッセージにある、/tmp/pids/ディレクトリへアクセスして、server.pidを削除すること。そして、もう一度、rails sコマンドを入力すれば、無事に起動できる。
起動すると、新たに、server.pidが作成されている。


参考リンク
A server is already running と出て rails server できないとき - americandog1993の日記

WindowsでRailsチュートリアルを参考にherokuにデプロイする際に詰まったところ

開発環境はWindows7 Professional(32bit) + Ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]+ Rails 5.1.6。

第1章 ゼロからデプロイまで | Rails チュートリアル
チュートリアルガイドは開発環境がWindowsじゃないので、違うポイントを書いておきます。

●記事中の1.5.1 Herokuのセットアップ内のbundle install --without productionの前に、管理者権限で、Ruby コマンドプロンプトを開き(方法はこちら)、

gem install sqlite3 -v '1.3.13'

を入力して、インストールを完了させておく。

railsでアプリを作成した状態のままでgit push heroku masterをして、デプロイに成功しても、The page you were looking for doesn’t exist.というページが表示されるので、注意。この場合は、例えば、

rails g controller root index

を入力し、作成された、root_controller.rb内の、indexアクション内に、

render html: "Hello World"

を追加し、config/routes.rbに、

root 'root#index'

を追加して、git add -A→git commit→git push heroku masterをすれば解決できた。

参考リンク
railsのherokuへの展開でつまずいた話 - saj_kzの日記
heroku へデプロイでエラー「The page you were looking for doesn’t exist.」 - stuby

Rubyでgem installしたときにpermission deniedが出現した時の解決法

開発環境はWindows7 Professional(32bit) + Ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]。

gem install sqlite3をしたときに、permission deniedとなってしまうことを解決する記事です。

permission deniedとは、管理者権限がないのに実行してしまっていることから発生するエラーで、管理者モードとして実行する必要があります。この記事では、その手順をメモしておきます。自分の場合はこれで解決しました。

1.左下のWindowsアイコンをクリック

2.すべてのプログラムをクリック

3.Ruby 2.3.3-p222(自分の環境の場合)をクリック

4.Ruby コマンドプロンプトを開くを右クリックし、管理者として実行をクリック

5.はいをクリック

6.ここで、再度、gem install パッケージ名をすると、無事、インストールできた。

7. gem list パッケージ名で確認すると、きちんとインストールできている。

参考リンク
-ε-いつかのブログ-з- : [Windows] 右往左往しながら Rails をインストール
メモ: Sass をWindowsに入れようとしたらgemで怒られたよ - tetsunosukeのnotebook


追記
エラーメッセージをコピペして色んなキーワードで検索しても、なかなか解決法が見つからずに、苦労して、なんとか解決方法を見つけました。以下は、検索したキーワード
gem install permission denied
 →事例が、MacLinux。sudoを使えと書いているが、Windowsにはないコマンドだ。
gem install permission denied windows
 →1番目に納得のサイトが出現。解決方法が書いてあるのだが、自分が勘違いして(文章をよく読まないで)、普通のコマンドプロンプト自体を、右クリックで管理者権限で実行し、gem installをした。当然、それだけだと、permission deniedは解決できず。
 →【教訓】「ないない」と思って、あせりながら、記事を読むと、解決法を読み飛ばしたり、誤読したりするがある。
gem install sqlite3 permission denied
 →この段階だと、どのサイトへアクセスしても、解決できそうにない心理になりながら探しています。また、一度、訪問して、解決方法が見つからなかったサイトが上位に表示されていて、より嫌な気持ちになります。
 →そして、10番目に表示されたサイト*1見て、なんとか解決します。

*1:コメント欄を見て、修正。解決に役立ったサイトは、上記の参考リンクの一番目のサイトです。

Railsにて自分で書いたCSSを使う

開発環境はWindows7 Professional(32bit) + Ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]+ Rails 5.1.6。


1.railsで新しくアプリを作る

2.app/assets/stylesheets/application.cssを開いて、以下の内容を追加する。

.test{
	color:red;
	font-size:30px;
}

3.作ったアプリのルートディレクトリをカレントディレクトリにして、以下のコマンドを入力する

rails g controller root index

4.config/routes.rbを開いて、以下のコードを追加する

  root to: 'root#index'

5.app/views/root/index.html.erbファイルを開いて、以下の内容を追加する

<div class="test">
いいね
</div>

6.以下のコマンドを入力してサーバーを起動して、http://localhost:3000/へアクセスする

rails s

実行結果
f:id:k01ken:20180927234320p:plain


参考リンク
Railsでオリジナルのトップページを表示する – Papa-gram

Railsでバージョンを指定してアプリを作る

開発環境はWindows7 Professional(32bit) + Ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]。

ローカル環境に複数のバージョンのRailsがあって、それぞれ使い分けたい場合の方法をメモしておく。

指定のバージョンのRailsのインストール

指定のバージョンのRailsをgemを使ってinstallしたければ、以下のようなコマンドを入力する。(以下では、バージョン 5.1.6をインストールする)

gem install rails -v 5.1.6
インストールしたRailsのチェック

現在、ローカル環境にあるrailsを知りたければ、以下のコマンドを入力する。

gem list rails

たくさん出てくるが、見るのはrailsの部分。
f:id:k01ken:20180918073619p:plain

アプリの作成

Railsのバージョンが5.1.6のアプリを作成したいときは、以下のようにコマンドを入力する。
※仮にここで、インストールしていないバージョンを指定したらエラーになる。
※依存関係のあるパッケージが廃止予定だったり、サポートが近いうちに終了することが決まっていると、古いバージョンが選んでも、強制的に依存関係を満たしている新しいバージョンの方でアプリが作成される。

rails _5.1.6_ new app

RailsでデータベースをSQLiteからpostgreSQLに変更する

開発環境はWindows7 Professional(32bit) + Rails 4.2.1 + Ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32] + SQLite version 3.24.0。

すでにSQLiteにデータを入れているデータベースをpostgreSQLに移し替える作業を行う。

1.カレントディレクトリをRailsのルートディレクトリ内にあるdbディレクトリにする。

2.以下のコマンドを入力しSQLite3を実行する

sqlite3 development.sqlite3

3.development.sqlite3内のitemsテーブルを、sqlite_dumpfile.sqlとして出力するため、以下のコマンドを入力して実行。同じディレクトリ内sqlite_dumpfile.sqlが作成されている。

.output sqlite_dumpfile.sql
.dump items

4.別のディレクトリにて、データベースをpostgresqlに指定して、railsで新しくアプリを作成する

rails new app -d postgresql

database.ymlを見ると、postgreSQL専用になっている。
Gemfileをチェックすると、pgがすでにインストールされている。



参考リンク
sqliteからpostgresへの移行
[*Rails*] 開発環境用DBをSQLite3からPostgreSQLに変更する
データベースをダンプ(.dumpコマンド) - SQLite入門
Rails:SQLiteをやめてPostgreSQLを使う - Hello world, I am kgmx.

PostgreSQLを使う

開発環境はWindows7 Professional(32bit)。

1.公式サイトへアクセスする
PostgreSQL: The world's most advanced open source database

2.ページ上部のDownloadをクリック

3.Windowsをクリック

4.Download the installerのリンクをクリック
5.Select your versionをPostgreSQL 9.5.14に選択し、Select your operating systemを、
Windows x86-32に選択し、DOWNLOAD NOWをクリック。
そのまま待っているとインストーラをダウンロードできる。

6.インストーラを実行する

7.Nextボタンをクリック
f:id:k01ken:20180909124215p:plain

8.Nextボタンをクリック
f:id:k01ken:20180909124233p:plain

9.Nextボタンをクリック
f:id:k01ken:20180909124245p:plain

10. Password, Retype password(同じもの)を入力して、Nextをクリック
※別に入力しないまま、Nextボタンをクリックしても良い
f:id:k01ken:20180909124302p:plain

11.Nextボタンをクリック
f:id:k01ken:20180909124324p:plain

12.Nextボタンをクリック
f:id:k01ken:20180909124335p:plain

13.Nextボタンをクリック
f:id:k01ken:20180909124353p:plain

14.Stack Builder~のチェックを外してFinishボタンをクリック
f:id:k01ken:20180909124547p:plain

15.環境変数PATHに;C:\Program Files\PostgreSQL\9.5\binを追加