使用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