Making a RAW SQL connection and rendering JSON for custom auto complete field: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
In any model class | == In any model class == | ||
<pre> | |||
def self.labels_for_autocomplete(auto_c_req) | def self.labels_for_autocomplete(auto_c_req) | ||
connection.select_all("SELECT label FROM companies WHERE LOWER(label) LIKE '#{auto_c_req.downcase}%' ORDER BY label ASC LIMIT 10 ") | connection.select_all("SELECT label FROM companies WHERE LOWER(label) LIKE '#{auto_c_req.downcase}%' ORDER BY label ASC LIMIT 10 ") | ||
end | end | ||
</pre> | |||
connection outpass ActiveRecords and does not cast results as Ruby objects. | * The connection outpass ActiveRecords and does not cast results as Ruby objects. | ||
== In the controller == | |||
<pre> | |||
def suggest_entreprises | def suggest_entreprises | ||
if request.xhr? | |||
if request.post? | |||
auto_c_req=params[:auto_c_req] | |||
results=Company.labels_for_autocomplete auto_c_req | |||
render :json => results.to_json | |||
end | |||
end | |||
render :text => "Error" | |||
end | |||
</pre> | |||
This example renders as JSON, and accepts only POST XHR requests. | |||
* This example renders as JSON, and accepts only POST XHR requests. |
Latest revision as of 07:31, 13 June 2008
In any model class
def self.labels_for_autocomplete(auto_c_req) connection.select_all("SELECT label FROM companies WHERE LOWER(label) LIKE '#{auto_c_req.downcase}%' ORDER BY label ASC LIMIT 10 ") end
- The connection outpass ActiveRecords and does not cast results as Ruby objects.
In the controller
def suggest_entreprises if request.xhr? if request.post? auto_c_req=params[:auto_c_req] results=Company.labels_for_autocomplete auto_c_req render :json => results.to_json end end render :text => "Error" end
- This example renders as JSON, and accepts only POST XHR requests.