ruby-on-rails-4 - 将Rails 4 has_many从proc条件转换为where

标签 ruby-on-rails-4 rails-activerecord

我有以下工作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语法知识的人,以帮助我纠正错误。

最佳答案

只需执行以下操作:

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

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

关于ruby-on-rails-4 - 将Rails 4 has_many从proc条件转换为where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19279289/

相关文章:

sql - 在 ActiveRecord 的 WHERE 语句中使用 array_length

ruby-on-rails - 使用多个 yield 插入内容

ruby-on-rails - 如何修改gem文件? (编码(marshal)数据太短)

ruby-on-rails - React::ServerRendering::PrerenderError in...Rails 5,React

ruby-on-rails-4 - 如何在after_touch 回调中确定触摸源类?

ruby-on-rails - rails : Migration default value cannot be overwritten by create methods

html - 使用 Rails 创建嵌套记录

ruby-on-rails - 为什么我的 Heroku 应用程序不使用 Sendgrid 发送电子邮件?

ruby-on-rails - 具有对象数组的 jsonb 上的索引

ruby-on-rails - "scoped"查询的事件管理员过滤器