2013-05-05 62 views
3

的用户名,我想您可以通过URL访问用户配置文件:root/user/(username)导轨 - 设计 - 用户配置文件的URL与

截至目前我已经将其与root/user/(id)工作,但我想这是对用户更友好和共享在URL中使用用户名。

这是怎样我现在有它设置

#user_controller.rb 

class UserController < ApplicationController 
    def profile 
    @user = User.find(params[:id]) 
    end 
end 


#routes.rb 

match 'user/:id' => 'user#profile' 


#profile.html.erb 

<h1><%= @user.firstname %>'s Profile</h1> 

基本上我试图做的是为:username改变了:id。我已经从devise在用户模型中创建了用户名,所以我知道这是行得通的。但现在,当我尝试在URL中获取用户名时,我得到了Couldn't find User with id=username

+0

我google搜索“rails设计用户名路由”,发现这个重复:http://stackoverflow.com/questions/5696302/change-devise-route-from-id-to-username – 2013-05-05 17:42:10

回答

5

更改控制器

class UserController < ApplicationController 
    def profile 
    @user = User.find_by_username(params[:username]) 
    end 
end 

的路由。

match 'user/:username' => 'user#profile' 
+0

工作就像一个魅力。非常感激!我不知道“User.find_by_username”在哪里可以了解更多关于这些类型的命令?谢谢!! – Julian 2013-05-06 01:57:10