Rails的配置文件中的用户名

时间:2011-03-03 08:05:28

标签: ruby-on-rails

使用RoR 2.3.8。我有以下代码:

user.rb

def to_param
  "#{login.downcase.gsub(/[^[:alnum:]]/,'-')}".gsub(/-{2,}/,'-')
end

people_controller.rb

def show
  @person = User.find(params[:id])

  if current_user == @person
    @posts = @person.posts.paginate(:page => params[:page], :order => order)
  else
    @posts = @person.posts.by_status('published').paginate(:page => params[:page], :order => order)
  end
end

我在login数据库中有一个列Users,其中包含唯一的用户名。 People只是一个控制器,用于显示用户创建的一些帖子。

我通常会在我的index.html.erb控制器下使用网址people链接到http://localhost:3000/people/2,并在用户帖子中使用以下代码示例:

<a href="<%= person_path(@post.user.id) %>"><%=h @post.user_name %></a>

我希望网址为http://localhost:3000/people/victor,其中victor是用户的login。此网址还应实际显示show.html.erb控制器中的个人资料people

我还需要做什么?谢谢!

2 个答案:

答案 0 :(得分:0)

我使用friendly_ID宝石来做这类事情 - 这很简单 - 祝你好运

答案 1 :(得分:0)

我会修改routes.rb,如下所示:

match 'people/:login' => 'people#show', :as => 'login'

然后修改people_controller.rb:

def show
  @person = User.where(:login => params[:login]).first
end

在追加信息后编辑
更正错误