* Rails3 [#b69db0dd]
** このページについて [#maa821ec]
Rails3 を Ubuntu 7.10 上にインストールして、scaffold を用いたお試しアプリを作るまでの過程を書いています。環境構築がメインになります。


** インストール [#a5e24e3c]
*** Ruby 本体の用意 [#fa15e918]
Ubuntu 7.10 にインストールしようと思いましたが、ruby1.8.7 が必要です。ところが、Ubuntu7.10 のパッケージでは、ruby1.8.6までしかないようです。

どうせ手動でインストールするなら、Rails3 とするため、ruby1.9.2 をインストールしました。tar ball をダウンロードして、普通に make と make install しました。

*** RubyGems [#ub42a75b]
Ruby によるバージョン管理ツールである gem が必要になります。今回は apt-get でパッケージインストールしました。

 $ sudo apt-get install gem

*** Rails [#de77beb5]
gem を使ってインストールしました。

 $ sudo gem install rails

*** Mysqlへのアダプタ [#rf48613c]
データベースに mysql を使いたいので、アダプタをインストールします。

 $ sudo gem install mysql2

** Rails によるアプリ構築 [#j3ac657b]
*** 雛型構築 [#yc368dc3]
まず、以下のコマンドで雛型を作ります。rails の後には、適当な名前を書いて下さい。

 $ rails StudyMemo

上記の例の場合だと、StudyMemo というディレクトリが作成されます。ディレクトリ内に入り、Gemsfile を開きます。先頭のほうにある gem 'mysql2' を以下のように指定して下さい。mysql2 の 0.3 は Rails 3.1 向けに作られているそうで、 Rails 3.0 では使えないようです ([[参考:http://blog.pg1x.com/2011/05/06/ubuntu11-04%E3%81%A7mysql2%E3%81%AEbundle-install%E3%81%8C%E5%A4%B1%E6%95%97%E3%81%99%E3%82%8B/]]) 。最新を使わないように、Gemfile を書き換えておく必要があります。(※下記はコマンドではなく、ファイル内の記述ですよ)

 gem 'mysql2', '< 0.3'

そして、以下のコマンドを使って、StudyMemo のパッケージを関連付けます。

 $ bundle install


*** 動作確認 [#z33256aa]
まず、簡易 Web サーバを起動します。
 $ cd StudyMemo
 $ rails server

Web ブラウザで、 http://[サーバ]:3000/ にアクセスします。表示されたページの "About your application’s environment" をクリックします。特にエラーなく、各バージョンが表示されれば、OK です。

なお、このように mysql2 のバージョンを正しく合わせておかないと、以下のようなエラーになるはずです。

 Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter`
 (no such file to load -- active_record/connection_adapters/mysql2_adapter

** データベースとの接続 [#ked36950]
*** database.ymlの設定 [#x50834b7]
config/database.yml の設定内容を書き換えます。★印のところを、環境に合わせて修正して下さい。

 development:
   adapter: mysql2
   encoding: utf8
   reconnect: false
   database: study_log ★
   pool: 5
   username: username ★
   password: password ★
   socket: /var/run/mysqld/mysqld.sock

なお、password が数字のみの場合、yaml の書式により、それは数値だと解釈されます。数字のみの文字列を、文字列と解釈させたい場合は、ダブルクォート("")で括って下さい。
 password: "12341234"

*** scaffold ジェネレータ [#e9217e8c]
scaffold ジェネレータを使うと、データベースの操作に必要な最低限の機能を生成してくれます。多くのアプリでは、データベースの操作は必須だと思うので、この雛型を活用して、楽が出来ます。

こうした雛型に対して、自分の作りたいアプリを合わせていくやり方により、Rails の効果が発揮されるものと思います。自分の作りたいものに、Rails を無理やりカスタマイズしては、Rails を使う意味は薄いですね。ERP パッケージと同様です。最初、このへんの設計思想が分からずに、うまく入り込めませんでした。

以下のコマンドで、テーブルのための雛型を作成します。これはあくまで Rails 上に必要なファイルを揃えるだけで、データベース上には何も作成しません。

下記の例では、study がテーブル名、以降が [カラム名]:[データ型] となっています。
 $ rails g scaffold study id:integer date:date subject:string time:integer comment:text

なお、"id" という文字列が入ったカラム名は、自動的に AUTO INCREMENT NOT NULL となるようです。

利用できるデータ型については、以下のサイトさまのページをご確認下さい。
- [[第5回 scaffoldをやり直してカラムを増やしてみる &#8211; Rails格闘記 (ポンクソフト):http://ponk.jp/?p=2190]]
*** データマイグレーション [#vfeb96e0]
実際に、データベース上にテーブルを作成します。以下のコマンドを発行すれば良いです。もし既存のテーブルを利用する場合は、本作業は不要です。

 $ rake db:migrate

ただし、既存のテーブルを扱う場合は、テーブル名の制約に注意が必要です。Rails では、モデル名の複数形がテーブル名になるので、既存のテーブル名もそれに合わせて修正しておく必要があります。
** 動作確認 [#y34334ed]
*** 確認の手順 [#l46f488d]
簡易 Web サーバを起動します。
 $ rails server

以下の URL にアクセスします。パスには、テーブル名の複数形を指定します。単純に "s" を付けるだけではダメなケースもあるので、きちんと英語の複数形にして下さい。
 http://[サーバ名]:3000/studies

これで、データベースを操作するための HTML インターフェイスが表示されるはずです。問題がなければ、これで完了です。

*** openssl [#c950ff36]
以下のメッセージでエラーが出た場合、ruby の openssl 拡張ライブラリを入れる必要があります。
 rails3 no such file to load --openssl

以下の手順で、拡張ライブラリをインストールします。
 $ cd /usr/local/src/ruby-1.9.2-p180/ext/openssl
 $ ruby extconf.rb

ここで再びエラーが出る場合、libssl-dev をapt-get で入れます。なお、libssl-dev はディストリビューションによって異なります (openssel-devel など) 。
 $ sudo apt-get install libssl-dev

その後は、make , make install を実行します。
 $ sudo make
 $ sudo make install

※余談ですが、dev は開発用キットの意味です。そのモジュールの機能を利用するものを "ビルド" する際に、必要になります。単に利用するだけなら、-dev は不要です。
** メンテナンス [#k3948d63]
テーブルを途中で変更したい場合は、一旦削除して再び登録する方法があります。
 $ rails destroy scaffold study
 $ rails g scaffold study id:integer subject:string

----
** 履歴 [#v361bc91]
- 2011/05/29 ぼくぴ 新規作成

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS