WindowsにてRails 5でdb:migrate:resetをしたらエラーになったときの解決法

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

rails db:migrate:reset

と入力すると、

Permission denied @ unlink_internal - c:/hr/db/development.sqlite3
Couldn't drop database 'db/development.sqlite3'
rails aborted!
Errno::EACCES: Permission denied @ unlink_internal - c:/hr/db/development.sqlite3

というエラーが出現した。調べてみると、どうやら、Windowsだと、コマンドで削除ができないみたいなので、以下の手順で解決してみた。

1.サーバーを起動していたら、サーバーをシャットダウンする
2.手動で、db/development.sqlite3を削除する
3.以下のコマンドを入力する

rails db:create db:migrate


参考リンク
Ruby on Rails - db:migrate:reset でエラーが出ます(67393)|teratail

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