使ActiveRecord自动附加一些SQL

时间:2011-07-10 18:31:49

标签: ruby-on-rails activerecord legacy-database

[更新问题以澄清]

我可以在Rails 3 / 3.1中创建模型,并让ActiveRecord自动使用/附加我为该模型配置的一些连接吗?

例如:

使用这样的代码:

  class Component < ActiveRecord::Base
    def self.base_query
        joins("join t05 on d04.t05_ukey = t05.ukey left join d03 on d04.d03_ukey = d03.ukey left join d16 on d04.d16_ukey = d16.ukey")
    end
  end

  Component.first      # under the hood is doing Component.base_query.first
  Component.where(...) # under the hood is doing Component.base_query.where

但ActiveRecord调用方法 base_query 而无需显式调用它。只是为了让它更像Rails。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

请查看本指南,了解有关Arel的有效记录查询。关于这个主题,还有一些非常好的railscast(@ railscasts.com)。如果你发现自己在丑陋的地方等等,请看一下meta_where宝石。我发誓这三件事。