ruby: 2008年7月アーカイブ

例えばブックマークに追加した人をDBにカウントアップしていく場合とか、active_recordには便利なメソッドがある。
Hoge.update_counters(id, counters) だ。

bookmark_countがカラム名だとすると
Hoge.update_counters(1, :bookmark_count => 1)
みたいにする。

そうすると
update hoge
set bookmark_count = bookmark_count + 1
where id = 1
という感じに処理してくれる。

カラムのところはcountersとなっていて、どうやらいくつでも指定できるっぽい。
僕は必要なかったからやってないけど。

エラーがでたらそれはたぶん引数の型がおかしいのでご確認ください。
例えばidをクエリから拾ってくる場合は、intに変換する必要があったりとか。
Hoge.update_counters(params[:id].to_i, :bookmark_count => 1)

あと、カウント値はマイナスでもよいようです。
あと、文体で唯一統一していた一人称も、てきとーにすることにしました。

以上、よろしくお願いします。

前回のXREAにrailsをインストールでrailsの環境が整った。ということにする。
ローカル環境で動作を確認したアプリが、XREAのSVNにコミットされている。ということにする。
railsアプリは$HOME/rails_appフォルダにいれることにする。

mkdir rails_app
cd rails_app
svn co file:///virtual/YOUR_ID/svn/path_to_your_repo ap_name
cd ap_name/config


vi environment.rb
#追加
$LOAD_PATH.push("/virtual/{YOUR_ID}/lib/ruby/site_ruby/1.8")
$LOAD_PATH.push("/virtual/{YOUR_ID}/lib/ruby")
ENV['GEM_HOME'] ||= '/virtual/{YOUR_ID}/lib/ruby/gem'

cd ap_name/public
vi dispatch.cgi
#!/usr/local/bin/ruby
#先頭行を↑に

公開領域にシンボリックリンクをはる。

cd $HOME/public_html

ln -s ../rails_app/ap_name/public dir_name

これでOK!のはず!

このアーカイブについて

このページには、2008年7月以降に書かれたブログ記事のうちrubyカテゴリに属しているものが含まれています。

前のアーカイブはruby: 2008年6月です。

次のアーカイブはruby: 2008年10月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。