# Problem: passing post parameters to a controller

**URL:** <https://www.ruby-forum.com/t/problem-passing-post-parameters-to-a-controller/190044>\
**Category:** Rails\
**Created:** [June 11, 2010, 11:37pm UTC](https://www.ruby-forum.com/t/problem-passing-post-parameters-to-a-controller/190044 "2010-06-11T23:37:16Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![max-you](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ccd318/32.png) [@max-you](https://www.ruby-forum.com/u/max-you)\
**Post date:** [June 11, 2010, 11:37pm UTC](https://www.ruby-forum.com/t/problem-passing-post-parameters-to-a-controller/190044/1 "2010-06-11T23:37:16Z")

</div>

Hi, I have a problem passing parameters via post.  
I’ve examined the log file of a scaffolded version against my AJAX  
version and can’t figure out what’s wrong. I think I’ve also isolated  
the problem to be parameter passing by using logger.debug.

the AJAX part;  
var name=document.getElementById(“name”).value;  
var notes=document.getElementById(“notes”).value;  
var parent\_nid=document.getElementById(“parent\_nid”).value;  
var  
post\_params=“name=”+name+"&notes="+notes+"&parent\_nid="+parent\_nid+"&authenticity\_token="+window.\_token;

var req=XMLHttpRequest();  
req.open(“POST”,"/categories/create",true);  
req.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”);  
req.send(post\_params);

The controller part: (mostly from scaffold)  
@category=Category.new(params[:category])  
logger.debug “name:”  
logger.debug @category.name  
logger.debug “notes:”  
logger.debug @category.notes  
logger.debug “parent\_nid:”  
logger.debug @category.parent\_nid  
Category.create(@category)  
redirect\_to :controller=\>‘dashboard’

the log part:  
Parameters: {“name”=\>“abc”,  
“authenticity\_token”=\>“d8c79e2216df723f373a9170fa364f9a3c147092”,  
“notes”=\>“abcde”, “parent\_nid”=\>“0”}

name:

notes:

parent\_nid:

–

Anyone has any idea what’s wrong?

---

<div class="post-metadata">

**Author:** ![max-you](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ccd318/32.png) [@max-you](https://www.ruby-forum.com/u/max-you)\
**Post date:** [June 11, 2010, 11:58pm UTC](https://www.ruby-forum.com/t/problem-passing-post-parameters-to-a-controller/190044/2 "2010-06-11T23:58:37Z")

</div>

On Fri, Jun 11, 2010 at 5:37 PM, Max Y. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi, I have a problem passing parameters via post.

> post\_params=“name=”+name+“&notes=”+notes+“&parent\_nid=”+parent\_nid+“&authenticity\_token=”+window.\_token;  
> …  
> the log part:  
> Parameters: {“name”=\>“abc”,  
> “authenticity\_token”=\>“d8c79e2216df723f373a9170fa364f9a3c147092”,  
> “notes”=\>“abcde”, “parent\_nid”=\>“0”}

The parameters aren’t nested properly, you want.

{ “category” =\> {“name”=\>“abc”, “notes” =\> “abcde”, “parent\_nid” =\>  
“0”},  
“authenticity\_token”=\>“d8c79e2216df723f373a9170fa364f9a3c147092”  
}

I also suspect that the parent\_nid attribute of category probably  
should be parent\_id (based on convention assuming that  
a category belongs\_to :parent)

So I think you want something like this javascript:

post\_params=“category[name]=”+name+“&category[notes]=”+notes+“&category[parent\_id]=”+parent\_nid+“&authenticity\_token=”+window.\_token;

## HTH

Rick DeNatale

Blog: [http://talklikeaduck.denhaven2.com/](http://talklikeaduck.denhaven2.com/)  
Github: [rubyredrick (Rick DeNatale) · GitHub](http://github.com/rubyredrick)  
Twitter: @RickDeNatale  
WWR: [http://www.workingwithrails.com/person/9021-rick-denatale](http://www.workingwithrails.com/person/9021-rick-denatale)  
LinkedIn: [http://www.linkedin.com/in/rickdenatale](http://www.linkedin.com/in/rickdenatale)

---

<div class="post-metadata">

**Author:** ![max-you](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ccd318/32.png) [@max-you](https://www.ruby-forum.com/u/max-you)\
**Post date:** [June 12, 2010, 12:16am UTC](https://www.ruby-forum.com/t/problem-passing-post-parameters-to-a-controller/190044/3 "2010-06-12T00:16:34Z")

</div>

That did it!

Thank you very much Rick!!
