Mat*_*nde 2 ruby activerecord ruby-on-rails dry
我有一个模型类,其中包括:
class Group < ActiveRecord::Base
has_many :subscriptions
has_many :users, :through => :subscriptions
has_many :admins, :through => :subscriptions, :source => :user, :conditions => "subscriptions.role = #{ROLES[:admin]}"
has_many :subscribers, :through => :subscriptions, :source => :user, :conditions => "subscriptions.role >= #{ROLES[:subscriber]}"
has_many :authors, :through => :subscriptions, :source => :user, :conditions => "subscriptions.role >= #{ROLES[:author]}"
has_many :pending_subscribers, :through => :subscriptions, :source => :user, :conditions => "subscriptions.pending = true"
end
Run Code Online (Sandbox Code Playgroud)
:through => :subscriptions, :source => :user
重复的次数困扰着我.我知道在路径文件中,你可以做到map.with_options
.我的模特协会有类似的东西吗?
Rob*_*rco 10
with_options
实际上是一个扩展的对象,所以你可以在你使用它ActiveRecord::Base
,以及
with_options :through => :subscriptions, :source => :user do |obj|
obj.has_many :admins, :conditions => "subscriptions.role = #{ROLES[:admin]}"
obj.has_many :subscribers, :conditions => "subscriptions.role >= #{ROLES[:subscriber]}"
obj.has_many :authors, :conditions => "subscriptions.role >= #{ROLES[:author]}"
obj.has_many :pending_subscribers, :conditions => "subscriptions.pending = true"
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
371 次 |
最近记录: |