# Question about Rails-formatted query params in URL

**URL:** <https://www.ruby-forum.com/t/question-about-rails-formatted-query-params-in-url/169111>\
**Category:** Rails\
**Created:** [May 29, 2009, 4:04pm UTC](https://www.ruby-forum.com/t/question-about-rails-formatted-query-params-in-url/169111 "2009-05-29T16:04:56Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kuma](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/a587f6/32.png) [@kuma](https://www.ruby-forum.com/u/kuma)\
**Post date:** [May 29, 2009, 4:04pm UTC](https://www.ruby-forum.com/t/question-about-rails-formatted-query-params-in-url/169111/1 "2009-05-29T16:04:56Z")

</div>

Hi all,

I am seeing a behavior for which I can’t find documentation. I am  
posting a form to a url with query params formatted in the Rails manner:

/controller/action?foo[bar]=3 # Of course, the brackets are properly  
encoded

When doing this, the actual form fields get lost, e.g.

params[:foo] # This gives {:bar =\> 3}

even though the form has other fields for foo.

Any ideas?

Thanks so much,

Brian H.

---

<div class="post-metadata">

**Author:** ![kuma](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/a587f6/32.png) [@kuma](https://www.ruby-forum.com/u/kuma)\
**Post date:** [May 30, 2009, 9:24am UTC](https://www.ruby-forum.com/t/question-about-rails-formatted-query-params-in-url/169111/2 "2009-05-30T09:24:00Z")

</div>

What is shown in the log file for the parameters for the request? You  
should  
see data  
Processing YourController#method … Parameters: …

Colin

2009/5/29 Brian H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![kuma](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/a587f6/32.png) [@kuma](https://www.ruby-forum.com/u/kuma)\
**Post date:** [May 30, 2009, 9:33am UTC](https://www.ruby-forum.com/t/question-about-rails-formatted-query-params-in-url/169111/3 "2009-05-30T09:33:56Z")

</div>

On May 29, 3:04 pm, Brian H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> params[:foo] # This gives {:bar =\> 3}
> 
> even though the form has other fields for foo.

so params[:foo] is being populated partially from parameters in the  
URL, partially from form parameters ? Some of the parameter parsing  
stuff changed in 2.3.2 so if you are using 2.3.2 would be interesting  
to see if this is a regression.

Fred

---

<div class="post-metadata">

**Author:** ![kuma](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/a587f6/32.png) [@kuma](https://www.ruby-forum.com/u/kuma)\
**Post date:** [June 2, 2009, 9:25pm UTC](https://www.ruby-forum.com/t/question-about-rails-formatted-query-params-in-url/169111/4 "2009-06-02T21:25:04Z")

</div>

Now that I’ve done a bit more testing, I think this is simply a  
namespace collision. I think that query parameters and form parameters  
share a namespace (the request), and it’s reasonable to have weird or  
undefined behavior when there is a collision. It seems like Rails  
behavior is to handle the form params first, putting them in the  
‘params’ hash, then handle the query params. The Hash class’ behavior  
would dictate a ‘last in wins’ behavior, which is consistent with what  
I’m seeing.

I found that I don’t really have to encode that parameter in the URL,  
which solves my immediate problem.

Thanks!
