* 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をやり直してカラムを増やしてみる – 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 ぼくぴ 新規作成