# Passing parameters to action

**URL:** <https://www.ruby-forum.com/t/passing-parameters-to-action/82941>\
**Category:** Rails\
**Created:** [January 22, 2007, 4:34pm UTC](https://www.ruby-forum.com/t/passing-parameters-to-action/82941 "2007-01-22T16:34:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mravo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e495f1/32.png) [@mravo](https://www.ruby-forum.com/u/mravo)\
**Post date:** [January 22, 2007, 4:34pm UTC](https://www.ruby-forum.com/t/passing-parameters-to-action/82941/1 "2007-01-22T16:34:36Z")

</div>

Hi,  
I have this action in my controller:

def someAction(someParam)  
…  
end

I want to call this action from JS  
like so:

\<%= remote\_function (:url =\> {:action =\> “someAction”, :someParam =\> 3})  
%\>

but this doesn’t work. How can I pass an argument to a controller  
(eficiently)?  
Thanks for your help!

---

<div class="post-metadata">

**Author:** ![mravo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e495f1/32.png) [@mravo](https://www.ruby-forum.com/u/mravo)\
**Post date:** [January 22, 2007, 5:10pm UTC](https://www.ruby-forum.com/t/passing-parameters-to-action/82941/2 "2007-01-22T17:10:06Z")

</div>

The solution I found is this:

def someAction  
…  
@newParam = params[:someParam] #@newParam is now 3  
…  
end

\<%= remote\_function (:url =\> {:action =\> “someAction”, :someParam =\>  
“3”})%\>

cheers

ps. if there is a better way, I’d like to know, please.

---

<div class="post-metadata">

**Author:** ![mravo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e495f1/32.png) [@mravo](https://www.ruby-forum.com/u/mravo)\
**Post date:** [January 22, 2007, 5:12pm UTC](https://www.ruby-forum.com/t/passing-parameters-to-action/82941/3 "2007-01-22T17:12:43Z")

</div>

Controller methods doesn’t work like that.

Say you have this: link\_to “Test”, :action =\> “test\_action”, :id =\> 5,  
:some\_param =\> “test”

This would be the controller:

def test\_action  
params[:id] #returns 5  
params[:some\_param] #returns “test”  
end

---

<div class="post-metadata">

**Author:** ![mravo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e495f1/32.png) [@mravo](https://www.ruby-forum.com/u/mravo)\
**Post date:** [January 22, 2007, 5:13pm UTC](https://www.ruby-forum.com/t/passing-parameters-to-action/82941/4 "2007-01-22T17:13:43Z")

</div>

By the way, I’m pretty sure rails wants you to name your actions  
some\_action, not someAction.

On Jan 22, 5:12 pm, “removed\_email\_address@domain.invalid”

---

<div class="post-metadata">

**Author:** ![mravo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e495f1/32.png) [@mravo](https://www.ruby-forum.com/u/mravo)\
**Post date:** [January 22, 2007, 9:45pm UTC](https://www.ruby-forum.com/t/passing-parameters-to-action/82941/5 "2007-01-22T21:45:24Z")

</div>

removed\_email\_address@domain.invalid wrote:

> By the way, I’m pretty sure rails wants you to name your actions  
> some\_action, not someAction.
> 
> On Jan 22, 5:12 pm, “removed\_email\_address@domain.invalid”

Thank you for showing me that. Yes, I’m naming my actions with ‘\_’ but I  
have so strange names I have to rename them for forum;).  
Thanks!

---

<div class="post-metadata">

**Author:** ![mravo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e495f1/32.png) [@mravo](https://www.ruby-forum.com/u/mravo)\
**Post date:** [January 22, 2007, 9:51pm UTC](https://www.ruby-forum.com/t/passing-parameters-to-action/82941/6 "2007-01-22T21:51:14Z")

</div>

removed\_email\_address@domain.invalid wrote:

> Controller methods doesn’t work like that.
> 
> Say you have this: link\_to “Test”, :action =\> “test\_action”, :id =\> 5,  
> :some\_param =\> “test”
> 
> This would be the controller:
> 
> def test\_action  
> params[:id] #returns 5  
> params[:some\_param] #returns “test”  
> end

I have found that I can pass arrays to action like: :action =\>  
“test\_action”, :id={1,2,3}. Is this ok, or is it “rail-abuse”;)?  
thanks
