-1
我在試圖找出導軌如何轉換哈希如(這是一個例子,請不要把這個字面意思我把東西扔在一起,我知道這個查詢得到的概念相同User.find(1)):rails 2.3將哈希轉換爲mysql查詢
{
:select => "users.*",
:conditions => "users.id = 1",
:order => "username"
}
進入: SELECT用戶* FROM用戶那裏users.id = 1個ORDER BY用戶名
我能找到最接近的是ActiveRecord的: :Base#find_every
def find_every(options)
begin
case from = options[:from]
when Symbol
instantiate_collection(get(from, options[:params]))
when String
path = "#{from}#{query_string(options[:params])}"
instantiate_collection(format.decode(connection.get(path, headers).body) || [])
else
prefix_options, query_options = split_options(options[:params])
path = collection_path(prefix_options, query_options)
instantiate_collection((format.decode(connection.get(path, headers).body) || []), prefix_options)
end
rescue ActiveResource::ResourceNotFound
# Swallowing ResourceNotFound exceptions and return nil - as per
# ActiveRecord.
nil
end
end
我不確定如何修改它只返回原始mysql語句。
爲什麼你想在這裏使用散列?你的查詢在Rails中只是'User.find(1)'。順便說一句。當結果是一個特定的項目時使用一個命令是沒有意義的。 – spickermann
這是真的,但它不包括我有問題。我使用paginate,最近我不得不使用HAVING關鍵字。不幸的是,我的分組結果在select中被指定,它被will_paginate銷燬。但是,如果我能得到上述工作,我可以調用paginate_by_sql這將包裝查詢並返回正確的計數結果。 – Camway