Ruby on rails 如何将对象传递给另一个模型的回调?
我有一个Ruby on rails 如何将对象传递给另一个模型的回调?,ruby-on-rails,ruby-on-rails-4,activerecord,Ruby On Rails,Ruby On Rails 4,Activerecord,我有一个会员资格模型,我有以下回调: 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
会员资格
模型,我有以下回调:
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)
如何将
资源
或用户
的等价物传递到在我的成员身份
模型上创建后运行的回调中?在创建
回调后,关联已经设置好,您不需要向回调传递任何对象,因为您的成员资格已经知道谁是它的资源
或用户
Connection.where("invited_membership_id = ?", self.resource.id)
用户和资源是否与成员身份关联?@BrentEicher是-但请记住,这是“创建后的
”
。调用“创建后”时,成员身份的关联不是已经设置好了吗?就像它知道它的用户或资源是谁一样,因此可以调用self.resource.id或将其作为参数提供给进程中存在的连接_?哦…是的。你是对的@BrentEicher。作为旁注,永远不要这样做:MyModel.where(foo).count>0?true:false
(甚至只是MyModel.where(foo).count>0
,它已经返回一个布尔值,三元值是冗余的)。这样做:或者只是MyModel.exists?(foo)
。