2011-12-28 95 views
1

我被这个简单的命名路由问题困住了。我有:简单导轨命名路由问题

#Controller: 

    def show 
    @thing = Thing.find(params[:id]) 
    end 

#Routes.rb: 

    match '/:name' => 'things#show' 

我得到的响应是Couldn't find Thing without an ID。如果我将控制器更改为:

@thing = Thing.find(params[:name]) 

然后我得到Couldn't find Thing with ID=thing。我错过了什么?

+2

事实上,你根本没有使用命名路线。最常见的命名路由是由'resources:things'生成的路由,并允许您使用'things_url'和其他路径/ url助手。 – 2011-12-28 09:29:46

回答

5
@thing = Thing.find_by_name(params[:name])