欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

Rails2.1中的新东西之一: has-one-through

程序员文章站 2024-03-17 21:08:52
...
Ryan Daigle发布了一系列关于rails2.1中新特性的文章.这里是这个系列中的一篇.

Has one :through

has_one终于长得和has_many一样高了,它也支持了:through选项.

class Magazine < ActiveRecord::Base
  has_many :subscriptions
end

class Subscription < ActiveRecord::Base
  belongs_to :magazine
  belongs_to :user
end

class User < ActiveRecord::Base
  has_many :subscriptions
  has_one :magazine, :through => : subscriptions, :conditions => ['subscriptions.active = ?', true]
end

并且当through属性改变后,中间属性会随之改变
@ryan.subscriptions #=> []
@ryan.magazine = Magazine.create(:name => 'Hustler')
@ryan.subscriptions #=> [<Subscription magazine_id: 1, user_id: 1 ...>]

译者注: 当through连接有多个record,has_one会返回第一个.
Rails2.1中的新东西之三: Dirty Objects
Rails2.1中的新东西之二: Gem Dependencies
Rails2.1中的新东西之一: has-one-through