Rails2.1 new feature(2)

Rails2.1の新機能紹介、その2。その1その3

2.1からはマイグレーションファイルが生成順ではなく、日付で採番されるようになったようなので試してみます。


script/generate authenticated user sessions



マイグレーションファイルがdb/migrate/20080603031640_create_users.rbというように日付で採番されて生成されています。

これに伴って、テーブル名もschema_migrationsに変更になっています。

続いてnamed_scope。

これは:conditions => {~~~}と条件文を書いて、コードの可読性が低くなっていたものを解消するもので、たとえば


class User < ActiveRecord::Base
named_scope :programmer , :conditions => {:job => "Programmer"}
named_scope :recent, lambda { { :conditions => ['created_at > ?', 1.week.ago] } }
end


とnamed_scopeを設定すると、


User.programmer





User.find(:all, :conditions => {:job => "Programmer"})
が実行されたのと同じ結果を得ることができるようになるというもの。さらにUser.programmer.countでその数も返してくれる。

上記の例のように、2つ以上のnamed_scopeを設定することが可能。

また名前をつけないAnonymous スコープという機能も使えるようで、たとえば


active = User.scoped(:conditions => {:active => true}}
recent = User.scoped(:conditions => ['created_at > ?', 1.week.ago])


とすると、


1week_active = recent.active


でアクセスできるようです。

今回は以上。

投稿されたコメント:

コメント
  • HTML文法 不許可
About

Tomo

Search

Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
今日