Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将对象传递给另一个模型的回调?_Ruby On Rails_Ruby On Rails 4_Activerecord - Fatal编程技术网

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)