4児パパ プログラミングを学ぶ

プログラミングは未経験で30歳過ぎても学べる!

Railsで新規プロジェクトを始める時に、前回までのファイルとシステムとが干渉しない新規作成する方法 【永久保存版】

f:id:hitoiws:20170523222221j:plain

City of Dreams Manilaにての写真撮影。

ここはホテルからカジノ、アミューズメント施設、何でもあります。 1ヶ月に一回はフィリピンにいく私ですが、最近は本当により楽しめるようになりました。フィリピンは真夏の炎天下になり、すごく体調崩しやすいです。笑

 

子供も楽しめるアミューズメント施設が多々ありますので、お子さんがいるご家庭でも十分楽しめます。空港から30分もしない場所にローケーションがあるため、3泊でもそこだけで十分に楽しめます。ぜひオススメの場所の1点です。フィリピン初心者でも滞在しやすし、アクセスもしやすいです。

 

もうすぐ日本も夏ですね!!その前に梅雨がやってきます。最近洗濯が好きになり、暇があれば休みの日に朝から洗濯機を回してます!!

 

特にバスタオルは好きですね!回しがいがあります!だって私を含め6人のタオルを回すので、それだけで一回転です!もちろん私が洗濯を回す時は、匂いをちゃんと付けます!子供達が喜ぶ程に♪笑

 

 

 

  

■目次

1.Railsの嫌なとこ

2.Railsでプロジェクト毎にシステムが邪魔しないようにする。

3.実際にrails newでアプリケーションを作り始める!

4.Railsアプリを実際に起動してみる

5.プロゲートで十分学べる!でもロカール開発できないのがとても残念

6.ローカル開発環境の構築に挫折しない

7.記事を読んでくれる人に感謝です。

 

 

1.Railsの嫌なとこ

プログラミング初心者でも、Ruby On Railsはとても学びやすく、書籍とかからもある程度(海外の書籍の数に比べたら、全然ですが)から学べることができるため、プログラミング未経験でもHTMLやCSSといったマークアップ言語を学んだあとは、サーバーサイドに入ることが多いでしょう。

 

Ruby On Railsは私もすぐに学び始めました。最初はちんぷんかんで、Viewは何?Modelって?え?Controllerって?って感じで、本当に一から学ぶということでした。

 

そして練習がてらに何度か同じようなアプリの開発をするのだけれども、新しいアプリを起こすために、同じように作っているはずなのに、システムでのrakeやbundlerのバージョンがこれから作るであろうRails ファイルをbundle installするたびに更新してしまい、常に新しいバージョンが付きまとい、今まで作ったファイルを開けて、rake routesコマンドやって見ると、rake aborted!いった具合にエラーが出る。

 

このようなバージョンが違うために、エラーが起きてしまうのは、解決方法を知らないと、永遠に付きまとい、本当にストレスになってしまう。

 

今回はタイトルにもあるように、

"Railsで新規プロジェクトを始める時に、前回までのファイルとシステムとが干渉しないようにする方法"をお伝えしたいさせて頂きたい。

 

システムでの干渉、gemの干渉をさせなければ、スイスイと開発が進めるでしょう。

 

目次にもどる

 

2.Railsでプロジェクト毎にシステムが邪魔しないようにする。

 同じディレクトリ内でお互いのシステムが邪魔しないように、環境を整えましょう!

自分への備忘録としても残しておきたいで、参考までに。

 

*条件としてrbenvとrailsがシステムにてインストールされている事!!*

 

1.プロジェクトフォルダを作成しましょう!

ここではDocments内作るとします。

$ cd Documents/

 

そしてフォルダを作ります!

とりあえずフォルダ名をtest1に致します!

$ mkdir test1

 

作ったフォルダのディレクトリ下にできたファイルに移動。ここでは"test1"。

$ cd test1

test1 daddy$

Rubyのgemとbundlerを落とし込みます!

$rbenv exec gem install bundler

$rbenv exec gem install bundler

Fetching: bundler-1.15.0.gem (100%)

Successfully installed bundler-1.15.0

Parsing documentation for bundler-1.15.0

Installing ri documentation for bundler-1.15.0

Done installing documentation for bundler after 5 seconds

1 gem installed

 

 

$ rbenv rehash インスタールしたものを定義します。

$ rbenv rehash

その次に 、

$ rbenv exec bundle init

Writing new Gemfile to /Users/daddy/Documents/test1/Gemfile

 ここでgemfileができますでの、gemfileを編集します!! 

 エディターを開きましょう!

私はsulimetext3を推奨しています。

f:id:hitoiws:20170523205831p:plain

gemfileを開けます!

 

f:id:hitoiws:20170523210048p:plain

 

railsの前にあった#(コメントアウト)を外し、バージョンを指定します。

ここでは"4.2.6"にします。ちなみにrailsの後の","を忘れずに!

そして保存するのも忘れずに!

 

そのバージョン指定したrailsをインストールします!

$rbenv exec bundle install --path vendor/bundle

ちょっと時間がかかりますが。

$ rbenv exec bundle install --path vendor/bundle

Fetching gem metadata from https://rubygems.org/..........

Fetching version metadata from https://rubygems.org/..

Fetching dependency metadata from https://rubygems.org/.

Resolving dependencies...

Fetching rake 12.0.0

Installing rake 12.0.0

Fetching i18n 0.8.1

Installing i18n 0.8.1

Fetching json 1.8.6

Installing json 1.8.6 with native extensions

Fetching minitest 5.10.2

Installing minitest 5.10.2

Fetching thread_safe 0.3.6

Installing thread_safe 0.3.6

Fetching builder 3.2.3

Installing builder 3.2.3

Fetching erubis 2.7.0

Installing erubis 2.7.0

Fetching mini_portile2 2.1.0

Installing mini_portile2 2.1.0

Fetching rack 1.6.8

Installing rack 1.6.8

Fetching mime-types-data 3.2016.0521

Installing mime-types-data 3.2016.0521

Fetching arel 6.0.4

Installing arel 6.0.4

Using bundler 1.15.0

Fetching thor 0.19.4

Installing thor 0.19.4

Fetching concurrent-ruby 1.0.5

Installing concurrent-ruby 1.0.5

Fetching tzinfo 1.2.3

Installing tzinfo 1.2.3

Fetching nokogiri 1.7.2

Installing nokogiri 1.7.2 with native extensions

Fetching rack-test 0.6.3

Installing rack-test 0.6.3

Fetching mime-types 3.1

Installing mime-types 3.1

Fetching sprockets 3.7.1

Installing sprockets 3.7.1

Fetching activesupport 4.2.6

Installing activesupport 4.2.6

Fetching loofah 2.0.3

Installing loofah 2.0.3

Fetching mail 2.6.5

Installing mail 2.6.5

Fetching rails-deprecated_sanitizer 1.0.3

Installing rails-deprecated_sanitizer 1.0.3

Fetching globalid 0.4.0

Installing globalid 0.4.0

Fetching activemodel 4.2.6

Installing activemodel 4.2.6

Fetching rails-html-sanitizer 1.0.3

Installing rails-html-sanitizer 1.0.3

Fetching rails-dom-testing 1.0.8

Installing rails-dom-testing 1.0.8

Fetching activejob 4.2.6

Installing activejob 4.2.6

Fetching activerecord 4.2.6

Installing activerecord 4.2.6

Fetching actionview 4.2.6

Installing actionview 4.2.6

Fetching actionpack 4.2.6

Installing actionpack 4.2.6

Fetching actionmailer 4.2.6

Installing actionmailer 4.2.6

Fetching railties 4.2.6

Installing railties 4.2.6

Fetching sprockets-rails 3.2.0

Installing sprockets-rails 3.2.0

Fetching rails 4.2.6

Installing rails 4.2.6

Bundle complete! 1 Gemfile dependency, 35 gems now installed.

Gems in the group production were not installed.

Bundled gems are installed into ./vendor/bundle.

 

test1下に、.bundleとvendorというフォルダが自動的に作られます!そして、Gemfile.lockというファイルも作られます!。ここで肝心はのは、$rbenv exec bundle install --path vendor/bundleの --path vendor/bundleです。

 

 --path vendor/bundleは、これはインスタールしたrubyのgemやrailsやbundleをそのフォルダ直下で管理してくれるため、システムに干渉することはないため、バージョンがそれぞれ違う他のフォルダ内のrailsのプロジェクトを干渉することはございません。絶対に忘れないようにしましょう。

 

 ここまでがRailsの他のプロジェクトを邪魔しないようにするための環境構築です。

 

目次にもどる

 

3.実際にrails newでアプリケーションを作り始める!

 先ほど作ったRailsのフォルダにrailsアプリを作ってみよう!

 $ rbenv exec bundle exec rails new local_test --skip-bundle

(今回はpostgresqlやmysqlなどのデータベースの指定を割愛します) 

o$ rbenv exec bundle exec rails new local_test --skip-bundle

Expected string default value for '--rc'; got false (boolean)

      create  

      create  README.rdoc

      create  Rakefile

      create  config.ru

      create  .gitignore

      create  Gemfile

      create  app

      create  app/assets/javascripts/application.js

      create  app/assets/stylesheets/application.css

      create  app/controllers/application_controller.rb

      create  app/helpers/application_helper.rb

      create  app/views/layouts/application.html.erb

      create  app/assets/images/.keep

      create  app/mailers/.keep

      create  app/models/.keep

      create  app/controllers/concerns/.keep

      create  app/models/concerns/.keep

      create  bin

      create  bin/bundle

      create  bin/rails

      create  bin/rake

      create  bin/setup

      create  config

      create  config/routes.rb

      create  config/application.rb

      create  config/environment.rb

      create  config/secrets.yml

      create  config/environments

      create  config/environments/development.rb

      create  config/environments/production.rb

      create  config/environments/test.rb

      create  config/initializers

      create  config/initializers/assets.rb

      create  config/initializers/backtrace_silencers.rb

      create  config/initializers/cookies_serializer.rb

      create  config/initializers/filter_parameter_logging.rb

      create  config/initializers/inflections.rb

      create  config/initializers/mime_types.rb

      create  config/initializers/session_store.rb

      create  config/initializers/wrap_parameters.rb

      create  config/locales

      create  config/locales/en.yml

      create  config/boot.rb

      create  config/database.yml

      create  db

      create  db/seeds.rb

      create  lib

      create  lib/tasks

      create  lib/tasks/.keep

      create  lib/assets

      create  lib/assets/.keep

      create  log

      create  log/.keep

      create  public

      create  public/404.html

      create  public/422.html

      create  public/500.html

      create  public/favicon.ico

      create  public/robots.txt

      create  test/fixtures

      create  test/fixtures/.keep

      create  test/controllers

      create  test/controllers/.keep

      create  test/mailers

      create  test/mailers/.keep

      create  test/models

      create  test/models/.keep

      create  test/helpers

      create  test/helpers/.keep

      create  test/integration

      create  test/integration/.keep

      create  test/test_helper.rb

      create  tmp/cache

      create  tmp/cache/assets

      create  vendor/assets/javascripts

      create  vendor/assets/javascripts/.keep

      create  vendor/assets/stylesheets

      create  vendor/assets/stylesheets/.keep

 

  --skip-bundleを指定する事で、本来rails newで指定した時と同時に発動するbundle installを避けて、ファイルを作成することができます。

 

f:id:hitoiws:20170523212605p:plain

 エディターを開いてみてみましょう。

rails newで立ち上げたファイル以外のgemfileやbundler環境をターミナルコマンドで削除します。

 

$ rm -f Gemfile 

$ rm -f Gemfile

f:id:hitoiws:20170523213221p:plain

$ rm -f Gemfile.lock

rm -f Gemfile.lock

f:id:hitoiws:20170523213352p:plain

$ rm -rf .bundle

rm -rf .bundle

f:id:hitoiws:20170523213429p:plain

$ rm -rf vendor

rm -rf vendor

f:id:hitoiws:20170523213544p:plain

 

このようにしてファイルを消して行きます。

 

 

 

目次にもどる

 

4.Railsアプリを実際に起動してみる

 先ほど作ったlocal_testに進みます!

$ cd local_test/

 

このファイル内でのgemをインストールします。

最初の時点では、

f:id:hitoiws:20170523214414p:plain

$ bundle install --path vendor/bundle

bundle環境が構築されます。

f:id:hitoiws:20170523214710p:plain

 

$ bundle install --path vendor/bundle

Fetching gem metadata from https://rubygems.org/..........

Fetching version metadata from https://rubygems.org/..

Fetching dependency metadata from https://rubygems.org/.

Resolving dependencies...

Fetching rake 12.0.0

Installing rake 12.0.0

Fetching i18n 0.8.1

Installing i18n 0.8.1

Fetching json 1.8.6

Installing json 1.8.6 with native extensions

Fetching minitest 5.10.2

Installing minitest 5.10.2

Fetching thread_safe 0.3.6

Installing thread_safe 0.3.6

Fetching builder 3.2.3

Installing builder 3.2.3

Fetching erubis 2.7.0

Installing erubis 2.7.0

Fetching mini_portile2 2.1.0

Installing mini_portile2 2.1.0

Fetching rack 1.6.8

Installing rack 1.6.8

Fetching mime-types-data 3.2016.0521

Installing mime-types-data 3.2016.0521

Fetching arel 6.0.4

Installing arel 6.0.4

Using bundler 1.15.0

Fetching thor 0.19.4

Installing thor 0.19.4

Fetching concurrent-ruby 1.0.5

Installing concurrent-ruby 1.0.5

Fetching sqlite3 1.3.13

Installing sqlite3 1.3.13 with native extensions

Fetching sass 3.4.24

Installing sass 3.4.24

Fetching tilt 2.0.7

Installing tilt 2.0.7

Fetching execjs 2.7.0

Installing execjs 2.7.0

Fetching coffee-script-source 1.12.2

Installing coffee-script-source 1.12.2

Fetching turbolinks-source 5.0.3

Installing turbolinks-source 5.0.3

Fetching multi_json 1.12.1

Installing multi_json 1.12.1

Fetching rdoc 4.3.0

Installing rdoc 4.3.0

Fetching byebug 9.0.6

Installing byebug 9.0.6 with native extensions

Fetching debug_inspector 0.0.3

Installing debug_inspector 0.0.3 with native extensions

Fetching tzinfo 1.2.3

Installing tzinfo 1.2.3

Fetching nokogiri 1.7.2

Installing nokogiri 1.7.2 with native extensions

Fetching rack-test 0.6.3

Installing rack-test 0.6.3

Fetching mime-types 3.1

Installing mime-types 3.1

Fetching sprockets 3.7.1

Installing sprockets 3.7.1

Fetching uglifier 3.2.0

Installing uglifier 3.2.0

Fetching coffee-script 2.4.1

Installing coffee-script 2.4.1

Fetching turbolinks 5.0.1

Installing turbolinks 5.0.1

Fetching sdoc 0.4.2

Installing sdoc 0.4.2

Fetching binding_of_caller 0.7.2

Installing binding_of_caller 0.7.2 with native extensions

Fetching activesupport 4.2.6

Installing activesupport 4.2.6

Fetching loofah 2.0.3

Installing loofah 2.0.3

Fetching mail 2.6.5

Installing mail 2.6.5

Fetching rails-deprecated_sanitizer 1.0.3

Installing rails-deprecated_sanitizer 1.0.3

Fetching globalid 0.4.0

Installing globalid 0.4.0

Fetching activemodel 4.2.6

Installing activemodel 4.2.6

Fetching jbuilder 2.6.4

Installing jbuilder 2.6.4

Fetching spring 2.0.2

Installing spring 2.0.2

Fetching rails-html-sanitizer 1.0.3

Installing rails-html-sanitizer 1.0.3

Fetching rails-dom-testing 1.0.8

Installing rails-dom-testing 1.0.8

Fetching activejob 4.2.6

Installing activejob 4.2.6

Fetching activerecord 4.2.6

Installing activerecord 4.2.6

Fetching actionview 4.2.6

Installing actionview 4.2.6

Fetching actionpack 4.2.6

Installing actionpack 4.2.6

Fetching actionmailer 4.2.6

Installing actionmailer 4.2.6

Fetching railties 4.2.6

Installing railties 4.2.6

Fetching sprockets-rails 3.2.0

Installing sprockets-rails 3.2.0

Fetching coffee-rails 4.1.1

Installing coffee-rails 4.1.1

Fetching jquery-rails 4.3.1

Installing jquery-rails 4.3.1

Fetching rails 4.2.6

Installing rails 4.2.6

Fetching sass-rails 5.0.6

Installing sass-rails 5.0.6

Fetching web-console 2.3.0

Installing web-console 2.3.0

Bundle complete! 12 Gemfile dependencies, 56 gems now installed.

Gems in the group production were not installed.

Bundled gems are installed into ./vendor/bundle.

 

--path vendor/bundleでbundle installをオプション指定すると、gemは./vendor/bundle内で管理され、システム全体のアップデートを回避することができます。

Bundled gems are installed into ./vendor/bundle.

 

ここまでくればRailsプロジェクトを始める一歩前の開発環境を終え、ようやくRailsでの開発に進めることができるようになります。

 

 

それでは早速local_testを起動してみましょう!

ターミナル内でcommand+Tでターミナルの新しいタブを開け、

 $ bundle exec rails s

$ bundle exec rails s

=> Booting WEBrick

=> Rails 4.2.6 application starting in development on http://localhost:3000

=> Run `rails server -h` for more startup options

=> Ctrl-C to shutdown server

[2017-05-23 21:54:18] INFO  WEBrick 1.3.1

[2017-05-23 21:54:18] INFO  ruby 2.3.0 (2015-12-25) [x86_64-darwin16]

[2017-05-23 21:54:18] INFO  WEBrick::HTTPServer#start: pid=37186 port=3000

 

ブラウザで、

localhost:3000とタイプ!

 

f:id:hitoiws:20170523215644p:plain

 

このRails初期の画面が出れば、おめでとうです!!!!!!

 

お疲れ様でした!!!!

 

5.プロゲートで十分学べる!でもロカール開発できないのがとても残念

私はプロゲートでプログラミングの基礎を学びました!ドッドインストールでも、学べることがたくさんあったかもしれませんが、やはり私はプロゲートの方がしっくりきたので、とても学び易いのを実感しました。

 

HTMLとCSSの部分はとても学びやすく、サンプルでの同じコードを用いて自分なりの画像を用意して、開発もしたぐらいです。 ある程度学んでくるとプロゲートさんの有り難みがとても実感できると思います。私は、Railsの”いいね”機能を作るレッスンはとても勉強にさせて頂きました!

 

でも、どんなにHTMLやCSS,RubyやRailsをプロゲートを学んだとしても、そこからいざ自分自身でプロダクトを作ろとしても、開発環境が揃っていない為に、そこで止まってしまいます!皆さんもそう感じたのではないでしょうか?

 

確かにRubyやRailsや、他の言語やフレームワークの開発環境の作り方などをグーグルで検索すれば探せますが、プログラミング初心者にとってはどれを参考にしたらいいか全く分からなく、挫折してしまうのがほとんどだと思います。

 

目次にもどる

 

6.ローカル開発環境の構築に挫折しない

 

最近でローカル開発環境でアプリケーションを開発しなくとも、WEB上で開発できるCloud9など有名ですよね。Cloud9はRubyも入っていますし、AI開発やデータサイエンスで話題になっているPythonも手軽に始めることができます。

 

 

最近のプログラミングスクールでは、先にCloud9でプログラミングの基礎を教え、それと同時にとりあえずGit(Github)を教える。そうすることで、プログラミング慣れやパソコン慣れをしてから、ローカル環境開発に進めます。

 

 

ローカル環境開発が完了すると、gitからForkして、いよいよローカルでの開発ですよね。cloud9のようなWeb上で開発すると、時たま回線が混んでいたり、あるいは場所や国によって、開発環境が不便な時があります。

 

プログラミング未経験者が最初に出くわすのローカル環境開発のハードルです。とても高いのですよ。私も実感しましたよ。そもそも最初はターミナルって何?から始まりましたけど!笑

 

もちろんCloud9のいいところもあります。ちょこっと違う言語を学びたなという時は、とても手軽で手っ取り早く、コードを書いてその動きを確認することもできますので。

 

本日お伝えしました、初期のローカル環境開発の設定は、だいたいどこのプログラミングスクールでも教えてくれません。だいたいrails new〜で、bundle installして〜といった具合に進めるでしょう。

 

でもこの方法も基礎を教えるのには間違っていません。ただなんどもお伝えしますが、やはり何度もRailsアプリを作り始めるにあたって、いずれシステムが干渉し始めます。

干渉し始めたら、もう大変テンパるでしょう。私もテンパりました。そのおかげで、少しだけですが、たくましくなったのも事実ですが。笑

 

ぜひ今回お伝えした内容を参考にして頂けら幸いです。

 

目次にもどる

 

7.記事を読んでくれる人に感謝です。

最近記事を読んでくれる人が多くなり、本当に嬉しい限りです。

これからも精進して参りますので、ぜひ応援して頂けら幸いです!!

 

今日も子供たちにちょっかいを出されながら、記事を書いています。笑

そんな幸せな1日を送っておりますよ♪

 

もしよかったら過去の記事を読んで頂けたら幸いです。

 

グーグルアドセンス広告が表示されない?違反は無いみたいだけど、広告が出ない場合の対処の仕方 - 4児パパ プログラミングを学ぶ

www.papa-programing.jp

 

 

ActiveRecord::RecordNotFound in "コントローラー名"Controller#update Couldn't find "モデル名" with 'id'=confirmの対処の仕方 解決方法! - 4児パパ プログラミングを学ぶ

www.papa-programing.jp

 

フィリピンでsimフリーを利用して、日本から持ってきた携帯を使おう!空港でsimフリーはタダで配られている!!!

www.papa-programing.jp

 

ブログアクセスアップ10%目指そう!はてなブログのカスタムURLは簡単! 

www.papa-programing.jp

 

 Webエンジニア1人とライター1人いれば、ビジネスが成り立つ!!

www.papa-programing.jp

 

マインドフルネス(瞑想)をしよう。3分で脳疲労を解消!脳疲労をとることで仕事に活気と生活に安定を♪

www.papa-programing.jp

 

 

プログラミングを始めたら、はてなブログを有効に使おう!プログラマーになり始めたらブログでアウトプットできる!

www.papa-programing.jp

 

 

 ”フィリピン”で”iPhone”を”充電する”!!日本と電圧は違うが怖くない!

www.papa-programing.jp

  

目次にもどる