定制用户在Rails显示路线
问题描述:
我想,而不是/ user /:id我想要的默认用户路线是/用户:created_at我能够得到/用户:ID工作(没有第二/),但是当我尝试做:created_at我得到一个错误。定制用户在Rails显示路线
有谁知道如何解决这个问题?另外,即使我有match 'users:id', :to => 'users#show', :as => :user, :via => :get
/user/1仍然是有效的链接,因为我的config/routes.rb中有resources :users
。有没有办法在rails编译resources :users
时删除default/user /:id?
答
如果我理解正确的话,你可以使用to_param:http://apidock.com/rails/ActiveRecord/Base/to_param
所以,如果你在你的用户模型例如
使用def to_param
"#{first_name}_#{last_name}"
end
然后user_path(@user)将产生/用户/ planet_pluto
,以防止由map.resources产生路线简单地使用:除了
map.resources :user, :except => [:show]
希望可以帮到
这不难做你在问什么,但是,创建在不是资源的唯一标识符。如果可以,您应该考虑使用其他字段。 – jdeseno 2012-01-07 21:08:34
哦,该领域必须是独一无二的? – Vasseurth 2012-01-09 04:03:41
如果两个项目的创建时间相同; resource/foo /:created_at引用哪个项目?它不*有*是唯一的,但是,应该是这些URL代表单个资源(而不是所有创建的项目的集合)。 – jdeseno 2012-01-09 16:24:29