railsのバージョンを指定する

以下のコマンドで任意のバージョンでrailsアプリケーションを作成できる。


# rails _2.2.2_ --version
# rails _2.2.2_ プロジェクト名 --database=mysql


_2.2.2_ の所は適宜変更する。


指定したバージョンのrailsがインストールされている必要があるので注意。
以下のコマンドで、バージョン指定のインストール。


# gem install rails -y -v 2.2.2

InstantRailsの悪夢

Rubyの案件に関わる事になりました。
具体的な引継ぎが行われるまで自習という事になったので、自分のお気に入りの翔泳社さんの10日でおぼえるシリーズ、『10日でおぼえるRuby on Rails入門教室』を元にお勉強開始です。表題の件、何が悪夢だったかというと、この本の付録CDからInstantRails1.7をインストールしたところ『gem install』が動かないっていう。

『gem install』ってなんぞや、といいますとRubyのライブラリ管理ツール rubygem のコマンドの事。かいつまんでいうと、例えば Rails っていうライブラリをインストールしたいな〜、って思ったとします。そしたらコマンドプロンプトで『gem install rails』って叩けば、ライブラリがインストールされる仕組みらしいです。凄ぇなぁ便利じゃん と、いざ使ってみたところ。


ERROR: While executing gem ... (Gem::RemoteSourceException)
HTTP Response 302 fetching http://gems.rubyforge.org/yaml


・・・何これ。


何度やっても上手くインストール出来ません。どうもrubygemのバージョンが低いのが原因っぽいぞ と思い、まず rubygem のアップデートを試みました。rubygem のアップデートは『gem update --system』で行うらしいです。


実行 → 失敗。


なんでじゃー!!


ネットで調べてみたところ、『gem update --system』だとうまく行かない場合があるとの事。
その場合、以下のやり方で出来るみたいです、ふむふむなるほど。


# gem install rubygems-update
# update_rubygems


実行 → 失敗。


なんでじゃー!!


あれもこれもダメでもう訳分からなくなってきてたんですが、だんだん http://gems.rubyforge.org/yaml ってのがいかんのじゃないかと思い始めてきて、色々悩んだ結果 http://rubyforge.org/RubyGems のプロジェクトから最も新しい rubygems-1.3.7.zip をダウンロードして、以下のコマンドを入力する事で rubygem をアップデート出来ました。


1. rubygems-1.3.7.zip を解凍する
2. InstantRails の左上『I』のボタンから Rails Applications → Open Ruby Console Window
3. 上記1で解凍したディレクトリに移動
4. 『ruby setup.rb』コマンドを叩くと rubygem インストールの開始


したら rubygem がアップデートされて、『gem install』が上手く動くようになりました。

Windows2008に移行したらODBC接続が出来なくなった

状況について。

Windows Server 2000で動作していたASPWindows Web Server 2008 に移行したところ、ODBC接続でデータベースからデータを取得する箇所でエラーが発生。

ODBCデータソースアドミニストレータのシステムDSNに接続先のデータベースの設定を行い、接続テストも成功するのに何故だ!?
とか思いながら調べてみると、IISのエラーログに以下のエラーが吐き出されてました。

指定された DSN には、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています

よーく調べてみると、ODBCデータソースアドミニストレータってさ、32bit用と64bit用の2つあったんだよね。スタートボタンから起動させるODBCデータソースアドミニストレータってのは64bitの方だったらしく、こいつに登録したDSNを削除して『%systemdrive%\Windows\SysWoW64\Odbcad32.exe』から32bitのODBCデータソースアドミニストレータを起動して、DSNを登録してやったら上手いこと動作してくれました。

いやー、よかったよかった。

64bitマシンって触ったの初めてだったから、相当悩んだよ。IEも32bit用と64bit用があって64bitの方だとFlashが動かないとかって話も、現場の人に聞けました。


[ 参考URL ]
http://support.microsoft.com/kb/942976/ja

VBScriptでFormから値を取得できない

お仕事で他人が書いたASPのソースを直しています。

んでテストしてて気づいた事。
「あれれーおかしいなー、フォームからPOSTで渡した値が次のページに渡せてないみたいだよ」(CV:高山みなみ

ソースを眺めてみると、POSTでSUBMITした値を『Request.QueryString("値の名前")』で取得しようとしている模様。インターネットで調べてみたところ、『Request.QueryString()』はGETメソッドもしくはHTTPクエリ文字列で渡された値を取得する為のメソッドらしい。

つまり、POSTで渡された値は『Request.QueryString()』じゃ取得できないみたいですな。

POSTで渡された値を取得する為には『Request.Form("値の名前")』というメソッドを使う必要があるらしいので、そんな感じでソースを修正したところ、POSTで渡された値を取得する事が出来るようになりました。めでたしめでたし。


PS. 前任者様、動作確認くらいしろ。


[ 参考URL ]
http://www.site-cooler.com/kwl/asp/10.htm

IIS7でglobal.asaが動かない

まぁ、なんというか。
global.asaが無視されてたんですよ。

んで、原因は何かといえばアプリケーションを仮想ディレクトリとして配置したからだとか。知らねーよ!!!

アプリケーションへ変換する事で対応出来ました。


[参考URL]
http://blog.livedoor.jp/hentaiga/archives/51491846.html

Windows Web Server 2008のインスコ作業(その2)

Windows Server 2000 のインストールされているサーバーに、Windows Web Server 2008をクリーンインストールする作業が発生しました。ライセンスは後日購入という事で、とりあえず評価版をインストールします。

WebサイトからISOダウンロードして、んで早速インストールしようと思ったんだけれど、インストール先のマシンにはCD-RドライブはあるがDVD-ROMを読み込めないという(´Д`|||) ドヨーン
(※Windows Web Server 2008 の ISOの容量は1.6GBでCD-Rに書き込めない。。。)


調べるに調べて、USBからのインストールを決行!!と、思ったら、今度はBIOSがUSB Bootに対応しておらず。どよよん。

結局、USBにISOの中身をコピーして、Windows 2000からWindows Web Server 2008のセットアッププログラムを起動、クリーンインストールしました。とりあえず成功。
でも、この方法だとパーティションの整理が出来なくて無駄なパーティションが出来ちゃったんだよね。。。
(※Bootからのインストールでないと、パーティションの編集が出来なかったです)


(追記)
後に、最適な方法を発見したので最終的にはパーティションも上手く整理出来ました。

手順は以下。
1.PLoP BootManagerをダウンロードしてCD-Rに焼く
2.USBにWindows Web Server 2008のISOの中身をコピー
3.USBをBoot可能にする
4.インストール先サーバーのCD-ROMドライブに上記1のCD-Rを挿入&上記3のUSBもぶっさして、再起動する。
5.Bootのメディアを聞かれるのでUSBを選択。
6.その内、セットアッププログラムが起動する。


[参考URL]
http://blog.livedoor.jp/poisonous_fish/archives/51690797.html
http://d.hatena.ne.jp/palm84/20080816/1218896213
http://www.atmarkit.co.jp/fwin2k/win2ktips/1155diskpart/diskpart.html