6

我有以下工作 has_many 与 proc 来捕获上下文参数:

has_many :subclass_point_analytics, :conditions =>  proc {"assessment_id = #{self.send(:assessment_id)}" }, :foreign_key => 'gid',  :dependent => :destroy

我正在使用 Rails 4,它(正确地)抱怨使用 :conditions。经过 30 分钟和多次尝试后,我无法弄清楚如何将 :conditions 转换为 -> { where ... } 格式。我会很感激有 proc 语法知识的人来帮助我纠正错误。

4

2 回答 2

16

只需这样做:

has_many :subclass_point_analytics, -> (object) { where("assessment_id = ?", object.assessment_id) }, :foreign_key => 'gid',  :dependent => :destroy

object 是您的实际实例。另外,请注意:可调用对象必须是第一件事(:条件往往在最后)

于 2013-12-05T22:18:20.307 回答
0

我会从这样的事情开始:

has_many :subclass_point_analytics, -> { where("assessment_id = #{self.send(:assessment_id)}") }, :foreign_key => 'gid',  :dependent => :destroy
于 2013-10-09T18:43:24.903 回答