Bundlerを使ったRuby環境構築

現在,Rubyでの開発はもっぱらMacで行っております.Mac OSX 10.6でのRubyのバージョンは,1.8.7ですので,これまでRVMを使って,1.9系環境を構築して利用しておりました.

しかし,私の場合,Rubyはもうバージョン1.9系しか使っていませんので,RVMを利用する意味が無くなりました.どちらかというとgemとのバージョンの整合性が問題であって,それはBundlerを利用することで何とかなりそうです.

インタプリタ言語の場合,PHPもPerlもそうですが,拡張モジュールをシステムにインストールして,それを複数のアプリケーションで利用するというのは,HDDの資源も無駄にならず,理にかなった方法なのですが,例えば,Aというシステム環境でアプリケーションを開発していて,そのアプリケーションを別のBというシステム環境で動かしたくなった場合,BのシステムをAのシステムと同様の環境にしなければなりません.Rubyの場合もバージョンがどんどん上がっていくgemもあり,バージョンの整合性で上手く動かないシステムも出てきました.

そこで,Bundlerを利用することで,アプリケーション単位でgemを管理する手法に切り換えることにしました.即ち,システム側にはgemはインストールせず,アプリケーションディレクトリにインストールするという方法です.この方法だとファイルの冗長性が増すので,サイズも無駄にとることになりますが,システムに依存しませんので,アプリケーション内でのgemのバージョンの整合性の問題は無くなります.

ということで,RVMでの利用をやめました.以下にその検証結果を示します.

Continue reading “Bundlerを使ったRuby環境構築”

スクラッチでRails3に挑戦 Part 5(新規登録と削除処理)

これでとりあえず締めになります.

CRUD操作の「C(Create)」と「D(Delete)」がまだ実装されていません.まずは,「C」のレコード新規登録処理を追加したいと思います.まずは,routes.rbにStudentsコントローラのnewアクションを実行できるようにルーティング情報を設定します.

「students/new」は「students/:id」でマッチされないように,「students/:id」の行より前のほうに持って行っておきます.そして,index画面から新規登録のページへのリンクのために,「new_student」というパス名を設定しておきます.

[config/routes.rb]

Sample::Application.routes.draw do  match 'students', :to  => 'students#index'
  match 'students/new', :to => 'students#new', :as => 'new_student'
  match 'students/:id', :to => 'students#show', :as => 'student', :via => :get
  match 'students/:id', :to => 'students#update', :via => :put
  match 'students/:id/edit', :to  => 'students#edit', :as => 'edit_student'
   :
end

それでは,Studentsコントローラにnewメソッドを追加します.

Continue reading “スクラッチでRails3に挑戦 Part 5(新規登録と削除処理)”

スクラッチでRails3に挑戦 Part 4(各ページへの移動リンクの追加)

さて,続きです.

前回は学生情報の編集や更新の処理部分を作成しましたが,これら作成したページ同士のリンクについて設定してみたいと思います.まずは,学生情報一覧の画面(index)から,各学生情報の表示や編集ページへ移動するリンクを作成してみたいと思います.

Continue reading “スクラッチでRails3に挑戦 Part 4(各ページへの移動リンクの追加)”

スクラッチでRails3に挑戦 Part 3(レコードを編集,更新してみる)

さて,前回の続きです.

Railsのログを見てみると,Webにアクセスする度に,つぎのようなメッセージが出てくる...

Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2011-11-09 14:40:37 +0900
Served asset /application.css - 304 Not Modified (0ms)

Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2011-11-09 14:40:37 +0900
Served asset /jquery_ujs.js - 304 Not Modified (0ms)

何かcacheの問題らしいのですが,このasset関係のログはうるさいので,とりあえずだまってもらうために,「config/emvironments/development.rb」を修正します.

[config/environments/development.rb]

   :
   # Expands the lines which load the assets
   config.assets.debug = false
   :

※修正しません(2013/03/11訂正)
→修正してしまうと,CSS(SCSS)ファイルの更新が反映されない場合があります.

さて,今回の本題です.

学生データを編集する edit アクションを定義したいと思います.URLで「http://〜/students/1234567890/edit」と指定したときに,idが「1234567890」の学生のレコードを編集するという画面を作ります.

Continue reading “スクラッチでRails3に挑戦 Part 3(レコードを編集,更新してみる)”

スクラッチでRails3に挑戦 Part 2(idで指定したレコードだけ表示してみる)

前回とりあえず,既に作成済みのMySQLデータベースのテーブルの内容を,Webページに表示してみる...というところまで終わりました.

さて,その続きになりますが,まずは関係ないところで,time zoneとlocaleを日本仕様にしておきましょう.

[config/application.rb]

module Sample
  class Application < Rails::Application
    :

    config.time_zone = 'Tokyo'
    :
    config.i18n.default_locale = :ja
    :

さて,本題です.とりあえずこの「students」テーブルを保守するアクションを定義して行きましょう.

Continue reading “スクラッチでRails3に挑戦 Part 2(idで指定したレコードだけ表示してみる)”