我有以下工作has_many和proc来捕获上下文的参数:
has_many :subclass_point_analytics, :conditions => proc {"assessment_id = #{self.send(:assessment_id)}" }, :foreign_key => 'gid', :dependent => :destroy
我正在使用Rails 4并且(正当地)抱怨使用:条件。经过30分钟和大量尝试后,我无法弄清楚如何将条件转换为 - > {where ...}格式。我很感激有人了解proc语法,以帮助我做到正确。
答案 0 :(得分:16)
这样做:
has_many :subclass_point_analytics, -> (object) { where("assessment_id = ?", object.assessment_id) }, :foreign_key => 'gid', :dependent => :destroy
对象是您的实际实例。 另外,要注意:可调用必须是第一件事(:条件往往在最后)
答案 1 :(得分:0)
我会从这样的事情开始:
has_many :subclass_point_analytics, -> { where("assessment_id = #{self.send(:assessment_id)}") }, :foreign_key => 'gid', :dependent => :destroy