woshidan's blog

そんなことよりコードにダイブ。

Ruby on Railsのチュートリアル1(Ruby,railsのインストールなど)

またインターンに行かせてもらえることが決まったので、Ruby on Railsチュートリアルをやったり、金曜日の筆記試験に備えて基本的なソートのアルゴリズムをすこしながめたりしています。

 

そのインターンに行くかどうか、お話しを聞きにいったとき、

コードを見ていただいて、Javaデザインパターン入門を勧められる程度にコードが汚い。

実際本を手に取ってから非常に納得できたので、そのまま下の本も買いました。

 

増補改訂版 Java言語で学ぶデザインパターン入門

増補改訂版 Java言語で学ぶデザインパターン入門

 

 

 

Androidは土曜日にやろう。もともと土曜日の講座なのだし。

 

とりあえずチュートリアルの1.2.4までまとめ。

 

主に1章はrubyrailsのインストールなど環境の設定。

Windowsは(ターミナルが使いにくいから?)railsinstallerを使うと使うもの全部インストールできるので、らくちん。

 ・installerを使った後でバージョンを見たら、Railsのバージョンが4.0だったので、

  gem uninstall railties -v 4.0.2

  としてRails 4.0をアンインストール。その後、gem install rails -v 3.2.16

  としようとしたら、

  file 'lib' not found

  と出て心配になり、インターン先の人に質問して教えていただいたことをもとに調べた結果、

  こういう場合はgem install railsの先に、

  gem install rdoc

  として、ドキュメントファイルのほうを前もってインストールしておくと大丈夫らしいです。

  

  また、アンインストールしたときみたいに、

  gem install railties -v 3.2.16

  とした場合

 

Successfully installed railties-3.2.16              

1 gem installed                                  

Installing ri documentation for rails-3.2.16...                         

Installing RDoc documentation for rails-3.2.16...

 

  となっています。

  同じフォルダにそう何回もインストールしていいものか、

  と思ったのですが、とりあえず動いているようなので先に進みます。

  (ここで止まっているわけには行かない)

 

rails new app_name

 でapp_nameという名前のプロジェクトを生成。

 基本となるコードが次々生成されていくみたいです。

 

・Gemfile

 どのgem(特定の機能を持った小さなプログラムの塊)を使うか、という設定を書くファイル。

 group :development

     ......

  end

 のようにして、どういう条件でそのgemを使うかを設定できるようです。

 上の例のdevelopmentだとテスト環境で使う、ということ。

 あとでherokuに移すので、herokuで動くデータベースソフトとバッティングしないように書いています。

 ・gemのバージョンの指定

   ">="を前につける(たとえば'>= 1.2.3')と最新版が1.2.3より新しければ最新版をインストールする、

  "~>"を前につける('~> 3.2.2')と、マイナーチェンジの範囲でしか新しいものに変えない(例:○ 3.2.2 → 3.2.3 × 3.2 → 3.3)、

  という意味。ただし、マイナーチェンジであろうと変更があれば挙動が違って動作が壊れるので、

  出来るだけ新しいバージョンで何もつけずに指定したほうがいいと思われます。

 

・bundle

 Gemfileその他に書かれた内容にしたがって、gemをプロジェクトにインストールしてくれるありがたいコマンド。

 rails newでコードを自動生成していくときもgemの名前が表示されていったあと、自動的に起動しています。

 手動でgemの設定を調整する場合は、

 Gemfileを書き換えたあと、ターミナルから、bundle update→bundle install。

 

一旦ここまで。

それにしても、最近環境のセットアップばかりやってるような……。