首页 > 解决方案 > Rails 在 ActiveRecord 中翻译原始 SQL

问题描述

我有这个 SQL 查询

sql = "select mt1.* from mail_templates as mt1 join mail_templates as mt2 where mt1.template_id = mt2.id AND mt1.technical_name='#{name}' AND mt2.festival_id=#{festival}"

如果我执行这个查询,ActiveRecord::Base.connection.execute(sql).first它会返回一个数组,我需要一个 MailTemplate ActiveRecord。

我不知道该怎么做。

感谢您的帮助

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

解决方案


我通过使用找到了解决方案

sql = "select mt1.* from mail_templates as mt1 join mail_templates as mt2 where mt1.template_id = mt2.id AND mt1.technical_name='#{name}' AND mt2.festival_id=#{festival}"
MailTemplate.find_by_sql(sql)

推荐阅读