「maimuzoが個人的にオススメするプラグイン」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
今のところのベストプラクティス
**リポジトリを用意する
subversionのサーバにログインして
>$ svnadmin create --fs-type fsfs /svn/hogeproject
んで、/svn/hogeproject/confの中のsvnserve.confとかpasswdあたりをいじっておく。
**railsアプリを作ってsubversionに入れておく
まずはsubversion用のディレクトリにアプリを生成し、コミットとチェックアウトする。
>$ mkdir hogeproject
>$ cd hogeproject
>$ mkdir trunk tags branches
>$ cd trunk
>$ rails hogeapp
>$ cd ..
>$ svn import . svn://domain/svn/hogeproject/ -m "initial"
>$ svn checkout svn://domain/svn/hogeproject/trunk/ .
logとtmpのいらないファイルを無視する
>$ cd hogeapp
>$ rm ./log/*.log
>$ svn commit -m "remove log file"
>$ svn propset svn:ignore "*.log" log/
>$ svn commit -m "add ignore log/*"
>$ rm ./tmp/sessions/* ./tmp/cache/* ./tmp/sockets/*
>$ svn propset svn:ignore "*" tmp/sessions tmp/cache tmp/sockets
>$ svn commit -m "add ignore tmp/"
**先に入れておくべきgem
>$ gem install mysql gettext refe mongrel mongrel_cluster capistrano -y
**なにはなくとも
./config/environment.rbに
>$KCODE = 'u'
>require 'jcode'
>require 'gettext/rails'
を追加
./config/database.ymlのdeveropmentとtestとproductionに
encoding: UTF8
と各種設定情報を追加
>$ capify
して./config/deploy.rbを埋めておく。
[[Capistrano]]参照。
>$ mongrel_rails cluster::configure
して./config/mongrel_cluster.rbに本番環境用の設定を埋めておく。
ちなみにフロントエンドのapache 2.2系でmod_ploxy_balancerを使った構成は
>NameVirtualHost 192.168.25.3:80
>
><VirtualHost 192.168.25.3:80>
>DocumentRoot "/home/sites/kaknow.it4myself.net/current/public"
>ServerName kaknow.it4myself.net
>CustomLog /var/log/apache2/kaknow.it4myself.net.proxy_access_log combined
>ErrorLog /var/log/apache2/kaknow.it4myself.net.noproxy.log
><Directory "/home/sites/kaknow.it4myself.net/current/public">
>allow from all
>Options +Indexes FollowSymLinks
>AllowOverride all
>Allow from all
>Order allow,deny
></Directory>
>DirectoryIndex index.html
>
># forward proxy off
>ProxyRequests Off
>
># don't reverse-proxying /engine_files /images /javascripts /stylesheets
>ProxyPass /engine_files !
>ProxyPass /images !
>ProxyPass /javascripts !
>ProxyPass /stylesheets !
>
># other access are proxying mongrel server
>ProxyPass / balancer://kaknowcluster/ timeout=2 nofailover=On
>ProxyPassReverse / http://localhost:4000/
>ProxyPassReverse / http://localhost:4001/
>
></VirtualHost>
>
>#reverse proxy cluster member
><Proxy balancer://kaknowcluster>
>BalancerMember http://localhost:4000 loadfactor=10
>BalancerMember http://localhost:4001 loadfactor=10
></Proxy>
>
><Location /balancer-manager>
>SetHandler balancer-manager
>Order Deny,Allow
>Deny from all
>Allow from 192.168.25.2
></Location>
>
><Location /server-status>
>SetHandler server-status
>Order Deny,Allow
>Deny from all
>Allow from 192.168.25.2
></Location>
>
>ExtendedStatus On
こんな感じ。
使い分けや逆引きは[[逆引きプラグイン]]参照
良さそうだったので調べてみたリストです。
[[annotate_models>annotate_modelsプラグイン]](テーブル構造をモデルにコメントとして挿入)
[[acts_as_versioned>acts_as_versionedプラグイン]](モデルのバージョニング。過去のデータの内容に戻せる)
[[acts_as_paranoid>acts_as_paranoidプラグイン]](削除フラグ対応。いわゆる理論削除)
[[acts_as_breadcrumbsプラグイン]](Modelからパンクズリストを作る)
[[active_formプラグイン]](ARモデル以外の場合にもバリデーションを使える)
[[SafeERBプラグイン]](HTMLエスケープし忘れたときに警告を出す)
[[acts_as_commentableプラグイン]](モデルにコメント付けが可能になる)
[[acts_as_ordered_treeプラグイン]](acts_as_treeにpositionでの表示順指定)
[[acts_as_favoriteプラグイン]](お気に入りのモデル)
[[MinusMORプラグイン]](RJSの拡張?というか、RJSからRuby構文を取ったもの。とても書きやすい)
[[default_orderプラグイン]](デフォルトのorderを指定)
以下は良さそうだけど、まだ調査してないモノのリストです。
**ちょっと便利だから入れと系(詳しくは調べてない。必要ならこの名称でググってみてください)
Exception Notifier(nilなどで例外が発生したらメールで通知)
acts_as_searchable(HyperEstraierで全文検索)
acts_as_searchable_with_similarity(全文検索+類似検索)
composite_primary_keys(ARで複合キーを扱う)
ActiveCrypto(カラムの暗号化を透過的に扱う)
riff(同じモデルのインスタンス間の差を取る)
enforce_column_limits(最大文字数バリデーションを自動で行う)
Spatial Adapter(PostGISを扱えるようになる。位置情報やるなら必須)
settings(アプリケーション全体で使うような設定値を扱える)
rails_pdf(railsからPDFを生成)
upload_progress(アップロード時のプログレスバーを表示)
ar_fixtures(テスト用のDBのデータを、実在のDBのデータから生成する)
history(セッションにアクセス履歴(URL)を保存しておく)
output_compression(Railsからの応答をgzip圧縮する)
acts_as_threaded(BBSのスレッドのようなのモデルを1回で取得する)
acts_as_network(snsのようなユーザ間の連携をモデリングできる)
acts_as_most_popular(特定カラムを出現頻度が高い順にn個取ってくる)
CAPTCHA(書き込み時に画像の内容を入力させるロボットはじきを付ける)
acts_as_voteable(投票機能)
validates_email_format_of(RFC 2822準拠のメアドバリデータ)
mail-queue(ARをメールキューに見立ててcronなどからキックする)
Token Generator(MD5を使ってトークンを作る機能をmixinする)
acts_as_countable(使われた数(ページビューなど)をカウントする)
Acts as Feeder(RSSを生成する)
mimetype-fu(ファイルのバイナリを読んでMIME Typeを検出する???)
LiveValidation(ブラウザ上でリアルタイムバリデーションを行う)
enum_fu(ARに疑似enum機能を追加する)
acts_as_list(並べ替えやソート機能)
[[acts_as_habtm_list>>http://www.inlet-media.de/acts_as_habtm_list]](並べ替えやソート機能を関連先によって制御)
[[acts_as_tree>>http://ar.rubyonrails.com/classes/ActiveRecord/Acts/Tree/ClassMethods.html]](スレッド式BBSのようなツリー構造のモデルをサポート)
[[Lipsiadmin>>http://rails.lipsiasoft.com/wiki/lipsiadmin]](ExtJS2.0を使ったscaffold?)
[[acts_as_sluggable>>http://tore.darell.no/pages/acts_as_sluggable]](/articles/show/76-the-valueのようにurl_forで生成するURLを人間に読みやすい物に変える。てかアクセス解析時には必須だよね)