はじめてのRuby on Rails、トラブル記録
<< Win7 64bitの場合Rails3と一緒に結局現状どのRubyを使えばいいのか(2011年2月版) | TOP | Rails3でjQueryを使う >>
スポンサーサイト

一定期間更新がないため広告を表示しています

posted by スポンサードリンク | | - | - | - |はてなブックマーク - スポンサーサイト
named_scope内で条件分岐する
[RAILS 2.xにて確認]*Rails3.xでは未確認です。

DBからランダムでX件取ってくるようにしようと思ったんですが、
productionはpostgresSQLでランダムはRANDOM()、developmentはMySQLでRAND()という別の関数だったので、
productionかdevelopmentで分岐するようにしたいと思いました。


それで、named_scope内で分岐できないかなーと思って調べた結果、こんな感じでできました
named_scope :ord_rand, lambda{|e|
if e == 'production'
{:order => 'RANDOM()'}
else 'development'
{:order => 'RAND()'}
end
}

コントローラー側では以下のように書いておきます。
@user = User.ord_rand(RAILS_ENV)


うん、すっきり

caseも使えるみたいです。↓
【参考】Aerialarts: named_scopeの引数による条件分岐CommentsAdd Star
posted by トモト | 18:21 | Rails小ネタ | comments(0) | trackbacks(0) |はてなブックマーク - named_scope内で条件分岐する
スポンサーサイト
posted by スポンサードリンク | 18:21 | - | - | - |はてなブックマーク - スポンサーサイト
コメント
コメントする










この記事のトラックバックURL
http://hajimete-ruby.jugem.jp/trackback/66
トラックバック
Rails3レシピブック 190の技
Rails3レシピブック 190の技
ついにRails3対応版が出ました!!
WEB+DB PRESS Vol.58
WEB+DB PRESS Vol.58
Rails2系から3への移行時に知りたいことがひとまとまりになっててよかった!色々ググるよりこれを読む方が早い。
Rubyレシピブック 第3版 303の技
Rubyレシピブック 第3版 303の技
Rubyやるならこのリファレンスは必要。
Search this site