2014-04-24 3 views

답변

1

을 참조하십시오 :

class Post < ActiveRecord::Base 
    scope :do_changes_and_return_collection, -> { where(active: true) } 
end 

당신은 호출 할 수 있습니다

def self.do_changes_and_return_collection 
    update_all(deleted: false) # Just an example. 
    where(submited: true) 
end 

을 그리고 당신은 호출 할 수 submiteds = current_user.posts.do_changes_and_return_collection

참고 : update_all가 실행되지 않습니다 검증 및 콜백

편집 :

has_many :posts do 
    def owner 
    proxy_association.owner 
    end 
end 

그리고 전화 current_user.posts.owner 당신이 CURRENT_USER 얻을 것이다 : 당신이 has_many 관계를 확장해야합니다 User에서
관계 소유자를 얻으려면

+0

메서드 내에서 컬렉션을 보유하는 부모 개체를 가져 오는 ActiveRecord 방법이 있는지 알고 있습니까 (즉, 'current_user')? 'self.first.user' 작품으로 추측됩니다. – Numbers

+1

@MsNumbers 내 편집 확인 – Doguita

+0

정말 놀라워요, 고마워요! – Numbers

0

예, 가능합니다. 따라서 scope을 사용해야합니다.

Ex.

Post.where(user_id: current_user.id).do_changes_and_return_collection 

난 당신이 게시물 모델 같은 것을 할 생각 scopes

관련 문제