Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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 告诉我如何使用ActiveRecordafeter\u add_Ruby On Rails_Ruby_Act - Fatal编程技术网

Ruby on rails 告诉我如何使用ActiveRecordafeter\u add

Ruby on rails 告诉我如何使用ActiveRecordafeter\u add,ruby-on-rails,ruby,act,Ruby On Rails,Ruby,Act,现在我有一个问题,我如何才能使callback在添加后通过关联接收对has\u many:中连接模型的引用? 我的代码如下: class Emergency has_many :departments, :through => :eme_references, :after_add => Proc.new { |eme_reference| eme_reference.eme_flag = 1} end 属性eme_标志是模型emreference的属性!但是在

现在我有一个问题,我如何才能使callback在添加后通过关联接收对has\u many:中连接模型的引用? 我的代码如下:

   class Emergency
     has_many :departments, :through => :eme_references, :after_add => Proc.new { |eme_reference| eme_reference.eme_flag = 1}
  end
属性eme_标志是模型emreference的属性!但是在这个街区,我得到了eme_的参考资料。课程是紧急的。 我想设置模型emreference的属性eme_标志。 这是我的问题!
干杯

我认为你想做的事在那里做不到

你可以在部门上创建一个“创建后”挂钩我假设紧急事件有很多eme参考有很多部门:

class Emergency
  has_many :departments, :through => :eme_references
  def flag!
    eme_flag=1
    save
  end
end

class Department
  after_create :check_emergency
  # this allows you to call department.emergency. Will return nil if anything is nil
  delegate :emergency, :to =>:eme_reference, :allow_nil => true

  def check_emergency
    self.emergency.flag! if self.emergency.present?
  end
end
大概紧急情况也有很多:eme参考,以便:通过协会工作

在这种情况下,您应该能够将回调附加到那里:

has_many :eme_references, 
  :after_add => Proc.new { |emergency, eme_ref| # code here }
该块接受两个参数,第一个是紧急参数,第二个是添加的紧急参数

在这个例子中,也许在EmeReference上的before_save回调也可以执行您想要的操作