You're probably better off using select_tag, together with
options_for_select here. collection_select appears to be giving you a
bit more magic than you want...

Example:

<%= select_tag :county, options_for_select(["Please select a
county...", ""][email protected] { |c| [c,c]}) %>

(change the entries in the map call if @counties has objects rather
than strings - the first entry in the array is the label, and the
second is the value that will be sent)

--Matt Jones

On May 28, 3:23 pm, ReidO <[email protected]> wrote:
> I'm trying to display unique counties listed in my database in select
> box for a property database. I've figured out how to do this, but now
> I can't figure out how to access the selected value of the select.
> This mainly has do with the way the HTML select name is outputted.
>
> My form code, county is an attribute for my property model:
>
>   <%= collection_select(:property, :county,
> @Counties, :county, :county, {:prompt => true}) %>
>
> This outputs the HTML
>
> <select id="property_county" name="property[county]"><option
> value="">Please select</option>
> <option value="Pearl River">Pearl River</option>
> <option value="Marion">Marion</option>
> <option value="Stone">Stone</option>
> <option value="Lamar">Lamar</option>
> <option value="Forrest">Forrest</option>
> <option value="Jones">Jones</option>
> <option value="Washington">Washington</option></select>
>
> It is the []'s in the select name "property[county] that is giving me
> fits. The other items in the search form use select_tag so the output
> is simply "min_price" rather than "property[min_price]". This is
> causing a syntax error when I'm trying to put together my search
> results array in my Property model:
>
> def self.find_by_lcc(params)
> where = []
> unless params[:mls].blank?
> where << "mls = :mls"
> end
> unless params[:county].blank?
> where << "county = :county"
> end
> unless params[:min_acreage].blank?
> where << "acreage >= :min_acreage"
> end
> unless params[:max_acreage].blank?
> where << "acreage <= :max_acreage"
> end
> unless params[:min_price].blank?
> where << "price >= :min_price"
> end
> unless params[:max_price].blank?
> where << "price <= :max_price"
> end
>
> if where.empty?
> []
> else
> find(:all,
> :conditions => [where.join(" AND "), params],
> :order => "city, price desc")
> end
>
> Due to the county problem all the records are being listed rather than
> just the properties within that county. The browser URL string I'm
> getting is:
>
> public/land?mls=&property[county]
> =Stone&min_acreage=0&max_acreage=16000000&min_price=0&max_price=1600000&com 
> mit=Search
>
> I have searched for answers on this for a couple of days and I'm sure
> it's a simple syntax method I need to use in compiling my search
> array.
>
> Thanks for any help!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to