Я знаю, что могу использовать обратные вызовы, но это должно быть осуществимо.Я сделал долгий поиск и безрезультатно.Это то, что, я думал, сработало бы.
def User < ActiveRecord::Base
has_many :documents
has_many :draft_docs , :class_name => 'Document', :conditions => { :status => 'draft' }
has_many :published_docs , :class_name => 'Document', :conditions => { :status => 'published' }
has_many :private_docs , :class_name => 'Document', :conditions => { :status => 'private' }
end
def Document < ActiveRecord::Base
belongs_to :user , :counter_cache => true
belongs_to :user , :inverse_of => :draft_docs , :counter_cache => true
belongs_to :user , :inverse_of => :published_docs, :counter_cache => true
belongs_to :user , :inverse_of => :private_docs , :counter_cache => true
end
Работает не так, как планировалось, так как вы можете увидеть его обновление документооборота вместо опубликованного_дока.