how params (without @) works?

I am newb. I feel confused about how params works.

I understand @params is an attribute of CLASS, but what is params? A named parameter? Because I thought instance attributes always begin with "@”, so params/request/flash/etc looks like a local variable.

thanks in advance Xiahong

params, request, etc are just instance methods that return hashes.

for example, flash'es implementation (action_controller/flash.rb):

       def flash #:doc:           unless defined? @_flash             @_flash = session["flash"] ||= FlashHash.new             @_flash.sweep           end

          @_flash         end

flash is the instance method of class ActionController::Flash. but our application controller is inherited from ActionController::Base, why can we use flash in our application controller ?

to be more concrete, i guess the code has the following form:

Class ActionController{ Class Flash def flash end … end

Class Base # can we call instance methods of Flash here?? end end

thanks, xiahong