I use :filter action to display form and allow record filtering. It contains form with combo box, submit button and list of record matching value in combo. filter.rb: class Filter attr_accessor :owner def initialize(params) @owner = ''''; if !params[:filter].nil? and params[:filter].has_key?(:owner) @owner = params[:filter][:owner] end end end Controler: @users = User.find_all @filter = Filter.new(params) View: select ''filter'', ''owner'', @users.collect {|u| [u.name, u.id]}, {:include_blank => true} My problem is that when I select some "owner" and submit the form it does not make current owner selected in combo box.>From Rails documentation I understood that you had to have@filter.owner = some_value to make it selected, but it doesn''t seem to work. Maybe this is only for ActiveRecord descendants? TIA, Domas Savickas
This has always worked for me. Maybe cause of the find method thrown in there. i really don''t know... <%= select(''filter'', ''owner'', Users.find(:all, :order => "id DESC").collect {|p| [ p.name, p.id ] }, {:include_blank => true}) %> jon -- Posted via http://www.ruby-forum.com/.
On May 18, 2006, at 8:53 AM, Jon Mr wrote:> This has always worked for me. Maybe cause of the find method > thrown in > there. i really don''t know... > > > <%= select(''filter'', ''owner'', Users.find(:all, :order => "id > DESC").collect {|p| [ p.name, p.id ] }, {:include_blank => true}) %>I think these snippets of code for select tags make excellent candidates for helper methods: {controller|application}_helper.rb def users_for_select Users.find(:all, :order => "id DESC").collect { |p| [ p.name, p.id ] } end View: <%= select(''filter'', ''owner'', users_for_select, { :include_blank => true } %> Additionally, why sort by id? From a user''s perspective, wouldn''t some user entered value make more sense? Name or email address for instance. -- -- Tom Mornini
As I don''t have access to my app from home I''ll try to test your suggestions tomorrow. Anyway, thanks for help! Domas Savickas