我有一個自定義類,但我希望能夠將它傳遞給Arel並讓它解析其可查詢部分。Rails3 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中定義的,所以它會明白Arel想要它的名字?
目前我解決方法有:
module Arel module Visitors class ToSql def visit_Custom_Item o "'#{o.name}'" end end end end
想象一下,您有一個Rails 2應用程序,您將此代碼傳遞給Arel無法訪問各個地方的查詢的類,並且它的工作原理是因爲它們有to_s重寫。這一切都停止在Rails 3工作。我知道它是在Rails/Arel功能的邊界:) – Titas 2011-06-17 08:17:03