ラベル Rails の投稿を表示しています。 すべての投稿を表示
ラベル Rails の投稿を表示しています。 すべての投稿を表示

2009/11/20

nginx mongrel_rails

Ubuntu で Rails と思ったわけです
パッケージ使えばいいとは思うのですが
Ruby というか Rails 周りは動きが速かったりするので
追従するには手作りかなと思い Ruby から作りました
で、gem 入れて rails 入れたり他のも入れたり

rails 自体は何で動かそうかなーと思ったのですが
mongrel ってのがスタンダードだと以前聞いていたのでそれで
で、その前に流行りの nginx を置いてみることにしました

ググってみたところ mongrel_cluster ってのを使えと
Ruby on Rails: mongrel_clusterのフロントエンドに nginxを使用する
これは、サービスとして mongrel を使うならば
バックエンドが例え1プロセスだとしても使った方が良いとのことで
素直に従うことに

でも、まぁ、結局 init script はどうにかするしかないかぁ〜
自前で書くような技術も根性も無いので参考が欲しい!
Ubuntu だしパッケージの中のを見ればいいだろうと思って
apt-get には無かったけど aptitude に download ってコマンドがあったので
$ aptitude download mongrel-cluster
$ aptitude download nginx
などして deb ファイル取ってきて
ar -x とか tar xfz で中身とりだして適当にスクリプトを眺めました
そして init script も完成

良く分からなかったのが gem install mongrel_cluster で入れたら
設定ファイルが /etc/mongrel_cluster であることが前提みたいで
できるだけ Ubuntu のものと被らせたくないなと思ってたんですが
設定方法が分からなかったんで symlink で逃げることにしました
もぉ、Ubuntu の mongrel-cluster は入れれません
や、入れないけど

mongrel_cluster によって何か恩恵にあずかれたのかは良く分からず
でも、とりあえず形にする為に一旦そこは放置で

nginx が前にいますが
Rails のとあるアプリ? だけ見えるようにしたかったので
proxy_pass で飛ばすのにルールが必要かなーと思ったんですが
今度は真面目にドキュメントにあたってみたら
NginxHttpProxyModule
rewrite 使って書き換えてから proxy_pass かましてました
や、あたりまえな気が今ではしています
        location / {
root html;
rewrite ^/$ /application break;
proxy_pass http://mongrel_cluster;
}
みたいにしてみました

あと、他のアプリは別途 location 立てて auth_basic しておきました
htpasswd は apache2-utils に入ってたので入れちゃいました
別途 location 立てるのが何か無駄な気がするんだけど仕方ないのかな
auth_basic が if の中では使えないので、まぁ、仕方ないのか?

久しぶりにこの辺の設定したので凄い頭痛くなりました

2009/04/18

post content-type

ActiveResource を少しずつ勉強してるんですが
REST っていうのは XML でのやりとりを想定してるんですかね
接続先によっては XML を吐くけで受けつけてはないとかあって

activeresource-2.3.2/lib/active_resource/base.rb だと
      # Create (i.e., \save to the remote service) the \new resource.
def create
connection.post(collection_path, encode, self.class.headers).tap do |response|

なんだけどこの self.class.headers に
{"Content-Type"=>"application/xml"}

が入ってるともぉ涙目。
ググって何入れればいいか捜して
{"Content-Type"=>"application/x-www-form-urlencoded"}

を渡してあげることにしました。

既に ActiveResource 使うメリット無くって
もう少し手軽に proxy だか middleware 的なもの作った方が早いんではという気分に

それにしても気付けたのは logger のおかげで
debug の知識ってのが無いと本当に大変だなぁ
Hellow, World とかできるようになったら後は debug の知識積むだけっすよ、ほんと

2009/03/19

Railsレシピブック

Rails の断片的な知識ばかり溜まっていっていて少し困っています
このままでは良いものは作れないかなと思ったので
本でも買って Rails の文化的なものから学びたいと思いました

で、「レシピが良いよ」と言われてたのでググってみたら
Railsレシピブック 183の技ってのがひっかかって確かに良さそう
更に一緒に買われてるRuby on Rails 逆引きクイックリファレンス
昨日検索でみつけたプレゼンしてる人が著者だし
でも 2 冊とも買うとなぁ〜、読まなさそうだなぁ〜

2009/03/18

単一テーブル継承って何ですか

RDBMS でテーブルを継承みたいなことってできないの?
何か別テーブル用意して参照すればいいわけ? って思ってたんですが
とりあえず Rails は良い方法が用意されてるに違いないと思い
"rails orマッピング" みたいのでググってみたところ
「単一テーブル継承」ってのが見つかりました

継承関係にあるようなもの全部テーブルに入れてしまって
type って column を用意しといてそこにサブクラスの名前書いといて
別途サブクラスも用意しといてあげるとハッピーってことみたい
おぉ、これだ、これで解決する気がする

で、そのもの "単一テーブル継承" で検索したら素敵なページが沢山出てきましたが
気をとりなおして "rails orマッピング 継承" で検索したところ
ぷっちん日記 11/26セミナー資料を発見
Rails ステップアップ講座と題して素敵情報満載でした
ありがとう Google 先生

2009/03/17

Rails の 2.3 が出たらしいので

手元で作ってみてる Rails のアプリを対応させようとしたら動かないじゃないの
ググってみたら
$ rake rails:update

とかしてみるのだということを先ず知る
そーかー、アプリをアップグレードできるのかー、って感じ
でもやっぱダメ

エラーコードとかでググっても良く分からないしどうしようと思うこと結構な時間
良〜くエラーコード読んでみたら locale 関係っぽかった
のでググったら
Ruby-GetText-Pacakge on Ruby on Rails-2.3.0 RC2
そうか、これ使ってたんだった!

というわけで git 入れて言われるがままに環境整えたらちゃんと動いた
エラーコードはちゃんと読まないとダメっすね、反省