# Rails 2 thinks my function name is the ID for show()

**URL:** <https://www.ruby-forum.com/t/rails-2-thinks-my-function-name-is-the-id-for-show/126328>\
**Category:** Rails\
**Created:** [January 17, 2008, 2:40pm UTC](https://www.ruby-forum.com/t/rails-2-thinks-my-function-name-is-the-id-for-show/126328 "2008-01-17T14:40:43Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![gers32](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/ed8c4c/32.png) [@gers32](https://www.ruby-forum.com/u/gers32)\
**Post date:** [January 17, 2008, 2:40pm UTC](https://www.ruby-forum.com/t/rails-2-thinks-my-function-name-is-the-id-for-show/126328/1 "2008-01-17T14:40:43Z")

</div>

Hi,

I wrote a RoR application using “Generators” / “scaffold” in Rails  
1.2.6 (via RadRails). Now that I’ve upgraded to Rails 2.0.2., the  
generated Controller is more REST-like; and that’s fine with me.

I’m used to creating new access functions, like this:

def simple\_list\_for\_prod\_id\_xml  
@foo\_bars = FooBars.find\_by\_sql(  
[“SELECT blah blah blah FROM FOO\_BARS WHERE PROD\_ID=?”,  
params[:prod\_id]] )

```
  render :xml => @foo_bars.to_xml

```

end

Unfortunately, when I try to access it via the URL  
[http://localhost:3003/foo\_bars/simple\_list\_for\_prod\_id\_xml?prod\_id=70941000](http://localhost:3003/foo_bars/simple_list_for_prod_id_xml?prod_id=70941000)  
the server thinks I’m implicitly calling the generated show() function  
and passing it an ID of “simple\_list\_for\_prod\_id\_xml”… What can I do  
to make sure my function is called?

I apologize if this has been answered before, but I was unable to find  
a relevant post. Thanks,

Chris.

---

<div class="post-metadata">

**Author:** ![gers32](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/ed8c4c/32.png) [@gers32](https://www.ruby-forum.com/u/gers32)\
**Post date:** [January 18, 2008, 10:18am UTC](https://www.ruby-forum.com/t/rails-2-thinks-my-function-name-is-the-id-for-show/126328/2 "2008-01-18T10:18:34Z")

</div>

I obtained a solution from Railsfrance and just modified the following  
line in routes.rb:

map.resources :foo\_bars, :collection =\> { :simple\_list\_for\_prod\_id\_xml  
=\> :get }

Chris.
