使用RoR 2.3.8。我有以下代码:用户名Rails的用户
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
我在Users
数据库,在那里唯一的用户名是列login
。 People
只是一个控制器来显示用户创建的一些帖子。
我通常会用下面的代码示例链接到index.html.erb
下我people
控制器与URL http://localhost:3000/people/2
在用户发表的帖子:
<a href="<%= person_path(@post.user.id) %>"><%=h @post.user_name %></a>
我想要的网址是http://localhost:3000/people/victor
其中victor
是login
为用户。该网址实际上还应该显示people
控制器中的配置文件show.html.erb
。
我还需要做什么?谢谢!
user_name仅在用户的帖子中使用。 Post.rb – Victor 2011-03-03 09:05:02
@Victor - 所以用户模型中也有一个登录字段,对吧?我将修复代码然后 – 2011-03-03 09:12:28
@Nikita - 我使用了这个'map.person'/:login',:controller =>'people',:action =>'show'',因为我使用Rails 2.3.8。我得到了这个问题:'找不到没有ID的用户' – Victor 2011-03-03 13:46:42