How can I do the following
I have a for as follows
<% form_tag companies_path, :method => ‘get’ do %>
Province: |
<%= hidden_field_tag :test, "test" %>
<%= select_tag "province", "
Prince Edward Island
New Brunswick
Nova Scotia
Newfoundland" %>
|
Product Category: |
|
<%=check_box_tag :wood_based_panels, 1,
params[:wood_based_panels] %> Wood based panels |
<%=check_box_tag :pre_fabricated, 1,
params[:pre_fabricated] %> Complete pre-fabricated building and
houses |
<%=check_box_tag :wood_cabinets, 1,
params[:wood_cabinets] %> Wood kitchen cabinets |
<%=check_box_tag :wood_windows_doors, 1,
params[:wood_windows_doors] %> Wood windows and doors |
<%=check_box_tag :wood_flooring, 1,
params[:wood_flooring] %> Wood flooring |
|
<%= submit_tag "search", :name => nil %> |
<% end %>
I want to dynamically build the SQL statement to look something like
this
SELECT * FROM companies WHERE (0=0 and province = Prince Edward
Island and (pre_fabricated = 1or wood_based_panels = 1))
The values in the where statement can change based on what is selected
in the form.
My Model
if search[:test]
#province = search.delete(:province)
test = search.delete(:test)
action = search.delete(:action)
controller = search.delete(:controller)
sql = “0=0”
search.each do |key, val|
if[:province]
sql += " and #{key} = #{val}"
else
sql += “and (#{key} = #{val} or”
end
sql += “)”
end
find(:all, :conditions => [sql])
else
find(:all)
end
end
This is not working Please help!!
|
|