更改设计路线 - id到用户名

时间:2012-04-16 23:08:51

标签: ruby-on-rails routing devise

如何更改从id到用户名的设计路线?

我希望路径类似于

http://www.site.com/users/username 

而不是

http://www.site.com/users/id

在我看来:

<span>posted by: <%= link_to( t.user.username, user_path( t.user.id ) ) %></span>

在我的用户模型中:

def to_param
    username
end

但是,我收到一条路由错误,指出uninitialized constant UsersController

我在routes.rb中设置了这些路线:

devise_for :users

root :to => 'tickets#index'

resources :users do
    resources :tickets
end

resources :tickets

1 个答案:

答案 0 :(得分:0)

在您的控制器中,按username而不是id搜索:

@user = User.find_by_username(params[:id])

现在,在您看来,将username而不是id传递给user_path帮助者:

<%= link_to t.user.username, user_path(t.user.username) %>