Сделайте так, чтобы ActiveRecord автоматически добавлял некоторые SQL - PullRequest
0 голосов
/ 10 июля 2011

[ обновление вопроса для уточнения ]

Можно ли создать модель в Rails 3 / 3.1 и заставить ActiveRecord автоматически использовать / добавлять некоторые соединения, которые я настроил для этой модели?

Ex:

Используйте код, подобный этому:

  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 голосов
/ 11 июля 2011

Посмотрите это руководство по активным запросам записей с помощью Arel .На эту тему также есть пара действительно хороших Railscasts (@ railscasts.com).И если вы обнаружите, что уродливые предложения where и т. Д., Посмотрите на драгоценный камень meta_where.Я клянусь этими тремя вещами.

...