Always passing the same params

Yes,
You can store all those variables in a session variable. Sessions
allow you to store variables between requests, and give you 'state'.

In your controllers, you can assign a session variable:

def index
  session[:my_first_setting] = nil
end

def change_setting
  session[:my_first_setting] = params[:setting1]
end

def search
  order = session[:my_first_setting] ? "updated_at DESC" : "updated_at
ASC"
  @results = Items.find(:all, :order => order)
end

You can store almost any data object in a session hash.

You can use flash (ie. flash[:my_variable] = my_data) to pass
information from one action to the next. Be careful how you use it. I
have ran into some problems passing variables back to the same action
using different request methods.