Rails3 Посещения пользовательских классов Arel

У меня есть собственный класс, но я хочу иметь возможность передать его в Arel и позволить ему разрешить его запрашиваемый ] часть.

module Custom
  class Item
    attr_accessor :name

    def initialize(name)
      self.name = name
    end
  end
end

custom_item = Custom::Item.new("Bill")
User.where(:name => custom_item)

есть ли что-нибудь, что я могу определить в custom_item, чтобы он понял, что Арел хочет от него имя?

В настоящее время я использую обходной путь:

module Arel
  module Visitors
    class ToSql
      def visit_Custom_Item o
        "'#{o.name}'"
      end
    end
  end
end
5
задан Titas 15 June 2011 в 13:57
поделиться