# Find(params\[:id\]) question

**URL:** <https://www.ruby-forum.com/t/find-params-id-question/93819>\
**Category:** Rails\
**Created:** [April 11, 2006, 11:44am UTC](https://www.ruby-forum.com/t/find-params-id-question/93819 "2006-04-11T11:44:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![robtotheb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/db5fbb/32.png) [@robtotheb](https://www.ruby-forum.com/u/robtotheb)\
**Post date:** [April 11, 2006, 11:44am UTC](https://www.ruby-forum.com/t/find-params-id-question/93819/1 "2006-04-11T11:44:06Z")

</div>

Admin Controller -

def show  
@wizard = Wizard.find(params[:id])  
end

View -

\<%= link\_to 'Show', :action =\> 'show', :id =\> wizard %\>

URL -

[http://localhost:3000/admin/show/1](http://localhost:3000/admin/show/1)

I want user\_name (one of the columns in the database) instead of the id  
to show  
For example:  
[http://localhost:3000/admin/show/‘user\_name’](http://localhost:3000/admin/show/'user_name')

Any ideas?

---

<div class="post-metadata">

**Author:** ![robtotheb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/db5fbb/32.png) [@robtotheb](https://www.ruby-forum.com/u/robtotheb)\
**Post date:** [April 11, 2006, 11:59am UTC](https://www.ruby-forum.com/t/find-params-id-question/93819/2 "2006-04-11T11:59:53Z")

</div>

def show  
@wizard = Wizard.find\_by\_user\_name(params[:id])  
end

On Tuesday, April 11, 2006, at 11:44 AM, Rob B. wrote:

> Any ideas?
> 
> –  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
> 
> * * *
> 
> Rails mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.rubyonrails.org/mailman/listinfo/rails](http://lists.rubyonrails.org/mailman/listinfo/rails)

Mikkel B.

www.strongside.dk - Football Portal(DK)  
ting.minline.dk - Buy Old Stuff!(DK)

---

<div class="post-metadata">

**Author:** ![robtotheb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/db5fbb/32.png) [@robtotheb](https://www.ruby-forum.com/u/robtotheb)\
**Post date:** [April 11, 2006, 12:08pm UTC](https://www.ruby-forum.com/t/find-params-id-question/93819/3 "2006-04-11T12:08:40Z")

</div>

That brings back:

NoMethodError in Admin#show

Showing app/views/admin/show.rhtml where line #1 raised:

You have a nil object when you didn’t expect it!  
The error occured while evaluating nil.user\_name

Mikkel B. wrote:

> def show  
> @wizard = Wizard.find\_by\_user\_name(params[:id])  
> end
> 
> On Tuesday, April 11, 2006, at 11:44 AM, Rob B. wrote:
> 
> > Any ideas?
> > 
> > –  
> > Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
> > 
> > * * *
> > 
> > Rails mailing list  
> > removed\_email\_address@domain.invalid  
> > [http://lists.rubyonrails.org/mailman/listinfo/rails](http://lists.rubyonrails.org/mailman/listinfo/rails)
> 
> Mikkel B.
> 
> www.strongside.dk - Football Portal(DK)  
> ting.minline.dk - Buy Old Stuff!(DK)

---

<div class="post-metadata">

**Author:** ![robtotheb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/db5fbb/32.png) [@robtotheb](https://www.ruby-forum.com/u/robtotheb)\
**Post date:** [April 11, 2006, 8:11pm UTC](https://www.ruby-forum.com/t/find-params-id-question/93819/4 "2006-04-11T20:11:44Z")

</div>

Maybe it’s more sane to use params[:username] since whe are dealing with  
a  
username?  
Don’t get scared by the ugly admin/show/?username=john URL, just edit  
config/routes.rb to handle the URL mapping stuff.

---

<div class="post-metadata">

**Author:** ![robtotheb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/db5fbb/32.png) [@robtotheb](https://www.ruby-forum.com/u/robtotheb)\
**Post date:** [April 11, 2006, 7:10pm UTC](https://www.ruby-forum.com/t/find-params-id-question/93819/5 "2006-04-11T19:10:04Z")

</div>

You need to remove the single quotes in the URL.

–  
– Tom M.
