# How params (without @) works?

**URL:** <https://www.ruby-forum.com/t/how-params-without-works/170725>\
**Category:** Rails\
**Created:** [June 22, 2009, 2:21am UTC](https://www.ruby-forum.com/t/how-params-without-works/170725 "2009-06-22T02:21:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Xiahong\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/3d9bf3/32.png) [@Xiahong\_G](https://www.ruby-forum.com/u/Xiahong_G)\
**Post date:** [June 22, 2009, 2:21am UTC](https://www.ruby-forum.com/t/how-params-without-works/170725/1 "2009-06-22T02:21:58Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Xiahong\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/3d9bf3/32.png) [@Xiahong\_G](https://www.ruby-forum.com/u/Xiahong_G)\
**Post date:** [June 22, 2009, 2:27am UTC](https://www.ruby-forum.com/t/how-params-without-works/170725/2 "2009-06-22T02:27:14Z")

</div>

> On Jun 21, 8:04 pm, Xiahong G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
> 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

```

---

<div class="post-metadata">

**Author:** ![Xiahong\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/3d9bf3/32.png) [@Xiahong\_G](https://www.ruby-forum.com/u/Xiahong_G)\
**Post date:** [June 22, 2009, 5:20am UTC](https://www.ruby-forum.com/t/how-params-without-works/170725/3 "2009-06-22T05:20:18Z")

</div>

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

2009/6/21 pharrington [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
