2015-11-26 2 views
0

У меня есть Membership модели, и у меня есть следующий обратный вызов на него:Как передать объект для обратного вызова другой модели?

after_create :setup_connection, unless: Proc.new { self.connection_exists } 

Этот метод вызывается:

def connection_exists 
    Connection.where("membership_id = ? OR invited_membership_id = ?", self.id, self.id).count > 0 ? true : false 
    end 

Но это вопрос, я хочу, чтобы работать как этот обратный вызов , но не могу понять, как передать объект, который я хочу.

Connection.where("invited_membership_id = ?", resource.id) 

Как я пройти эквивалент resource или user в обратный вызов, который работает в after_create на моей Membership модели?

+0

ли пользователь и ресурс, связанный с членство? –

+0

@BrentEicher Да - но помните, что это 'after_create'. – marcamillion

+0

Когда вызывается after_create, не будут ли уже установлены ассоциации членства? Как бы он знал, кто это пользователь или ресурс, и может ли он вызвать self.resource.id или предоставить его в качестве аргумента для connection_exists в proc? –

ответ

1

В after_create обратного вызова ассоциация уже установлена, вам не нужно передавать какой-либо объект обратного вызова, потому что ваше членство уже знает, кто его resource или user

Connection.where("invited_membership_id = ?", self.resource.id) 
Смежные вопросы