TOP        作者



■ 「Ruby on Rails」 を ほんのちょっぴり・・・。





「Ruby on Rails」というWebアプリケーション開発ソフトが人気と言うので、ほんのちょっとやってみました。
これはそのときの手記です。





 はじめに

 この本を買って、ちょっとやってみただけです。 
  概要だけ掴んでみたかったので、(まだ)本の内容の、ほんの障りしかやってません。





 必要なソフト


@Ruby

ARubyGems…Ruby用のパッケージ管理システム
           RedHat系のパッケージ管理“RPM”がPythonで作られているのと同じように、これはRuby用の
           パッケージ管理ツールなのだろう、との理解をしています。

BRuby on Rails

Cデータベースソフト…何でもいけるようなのですが、本の中では「PostgreSQL」を使っていたので、「PostgreSQL」
                を使用しました。

 ・・・OSは「Debian」を使用しました。(この本もそうだったので。)





 メモ


 細かな手順は記しません。(本に書いてあるので。)
 (本を読まないと絶対に出来ないよう、以下はかなり端折って書いております。)

 ただ、注意点として。 本には

 su postgres createuser rails

 とコマンド打つように書いてあるんですけど、私は useradd rails も、一応やっておきました。

 あと、DBのキャラクタをUTF-8で作るように書いてあったので、本の通りやってみました。
 (「Debian」のOS自体は、EUC-JPなのですが。)

 ・・・ココんとこは、個人的に「EUC」にすべきだったと思ってます。(何かと面倒なので。)

 DBの作成は、createdb というUNIXコマンドで行います。
 (っていうか、「Postgres」よく知らないんですけど…。)

 で、

 rails scheduler --databese=postgresql

 というコマンドを打つんですね。(railsの引数がスキーマ名になるのかと言うと、そうでは無いらしい。)

 私は最初、てっきり「scheduler(スケジューラ)」というテンプレートが「rails」に予め登録されていて、
 そいつをこのコマンドで構築しているだけ、と思ってました。
 (本にその辺のことがよく書かれてなかったから。 私の読解が悪かったのか??)

 どうやら、そういう訳ではなさそうです。
 こちらのサイトを見て、そう思いました。

 この分だと映画の感想サイトとかでも、簡単にWebDBで作れそうですね。
 rails movie --databese=postgresql とかやって・・・。
 (尤も自宅サーバにすればの話ですが。)

 DBへの接続設定は、config/database.yml で行います。(書き換えが必要。)

 あと、テーブルの作成は db/migrate/001_create_schedules.rb
 ファイルをviなりで開き、そこに書き込む形。
 SQL文ではなく、Rubyからテーブルを作成しているみたい。
 (勿論、手動で作成してもどちらでも良いようです。 上のリンクサイトでは、自分で作ってましたんで。)

 上記ファイルを書き換えてから rake db:migrate コマンドを実行すると、テーブルが作成されています。

 でも私の場合、db/migrate/001_create_schedules.rb の記述内容をスペルミスしたまま実行してしまい、カラ
 ムの名称が異なっておりました。

 ですので、すぐさま drop table してやったのですが、その後(カラム名のスペルを修正の後)再度上記コマンド
 を再実行しても、全然テーブルが作成されません。

 結局
 db/migrate/001_create_schedules.rb
 を
 db/migrate/002_create_schedules.rb
 に名前を変えてから、同コマンドを実行してやると、テーブルが作成されました。(^^)
 (どっかでフラグが立っているようですね。)

 …この手の本は手順こそきちんと書いてあるのですが、「あっ、間違えた。」というときにどうやって“基(もとい)”
 にするのか?」という、そこら辺については極めて不親切です。
 (まっ、そんなことまで書いていたら、ページが幾らあっても足りないんで。)


 (Windows機からPuttyでDebianにログインしたイメージ)

 この本には、psqlについての説明は、ほとんど載っていません。
 “対象読者=データベースの分かる人”と書かれています…。

 ちなみに、psql -U [Postgresのログインユーザ名] [DB名] で、ログインするようです。
 (psqlというのは、「PostgreSQL」へのコンソールです。)



 (Windows機からPuttyでDebianにログインしたイメージ)

 何度もdescribe打ってみたのですが、反応が無い。
 なんと「PostgreSQL」には、describe文が無いんですね…。

 ちょっと気になるんですけど、select文が時々はねられます。
 コマンドミスした訳でもなく、ただ矢印キーで前回と全く同じコマンドを呼び出している
 だけなのですが…。
 はねられたらり、はたまたきちんと結果が返ったり…。
 (「PostgreSQL」って、こんなものなのでしょうか? 「MySQL」の方が良さげな気がします…。)


 それはそうと、ここまで出来たら、

 ruby script/generate scafold Schedule

 コマンドで、Webアプリが作られます。

 ↓



 ↑コレがそうです。 スケジュール(予定表)の登録画面が出来上がっています。




 タイトルが日本語になるように、本の記述に従ってやってみました。
 でもこれ。 このOS上で作業したので、EUCなんですけど。(笑)
 ブラウザのエンコードを「EUC」にしないと、日本語表示になりません。

 エンコードを「EUC」にしてデータ入力し、そのまま登録しようと「Create」ボタンを押したら、エラーになって
 しまいました。

 仕方なく、(文字化けを顧みず)「UTF-8」に画面を切り替えて「Create」ボタンを押すと、今度は登録出来
 ました。



 ↑Windows機のインターネット・エクスプローラから、Web画面(リスト表示)を開いたイメージ。
 先ほどの“仙台出張”が、登録されています。

 本には「UTF-8で」と書かれていましたが、OSのデフォルトが「EUC」なんですよね。
 EUCでvi立ち上げて、“日付”とか“タイトル”とか、日本語で入力したら、そりゃあEUCになってしまいますよね。
 やっぱり本の内容に逆らって、「EUC」を選択しておくべきでした・・・。


 でもまあ、
 mv _form.rhtml _form.rhtml.euc ;nkf -w _form.rhtml.euc > _form.rhtml
 で、解決です。(^^)
 (UTF-8に変換してやったところ、上記の問題は解決しました。)




 さて。 今度は本の通りにはやらずに、先ほどのサイトを見て興味を抱いていたので、ここでテーブルに列を
 追加してみました。 具体的に申しますと、「shoku」という列を追加してみました。

  (注)ちなみに、上の画面でレコードが1件に減っているのは、私が
    @ delete文 を発行し全レコードを削除の後、
    A アプリから「金沢出張」のデータを登録した為です。


 ruby /home/rails/scheduler/script/server
 で、Webが起動します。



 うーん…。 「Shoku」列が出来ていました。
 ちなみに“shoku”と名付けたのは、旅先で見つけた「旨い店」(食)といった意味合いです。




 でも、新規登録画面の方には、「shoku」列が反映されていませんでした。

 そこで、
 ruby /home/rails/scheduler/script/generate scafold Schedule
 と、再度サイトを構築しなおします。




 ↑再構築後。

  すると、「shoku」列が追加されていました。
 でも、せっかくタイトルを日本語に変えたのに、(今の再構築コマンドで前のやつが消えてしまい、)元
 に戻ってしまいました。(笑)

 ・・・まあ、また作ればいいんで。 原理さえ分かれば、とりあえずよしとします。






このフリーソフトに関するご感想/ご質問は こちら までお送りください。           製作者ハンドルネーム Ikkyu(一求)

            


TOP        作者