在Rails中自定义用户显示路由

时间:2012-01-07 16:30:24

标签: ruby-on-rails devise routes

我想要,而不是/ user /:id我希望默认用户路由是/ user:created_at我能够获得/ user:id工作(没有第二个/)但是当我尝试这样做时:created_at我收到了错误。

有谁知道如何解决这个问题?此外,即使我match 'users:id', :to => 'users#show', :as => :user, :via => :get / user / 1仍然是有效链接,因为我的config / routes.rb中有resources :users。有没有办法在rails编译resources :users时删除默认的/ user /:id?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以使用to_param:http://apidock.com/rails/ActiveRecord/Base/to_param

因此,如果您在用户模型中使用

def to_param
   "#{first_name}_#{last_name}"
end

然后user_path(@user)将生成/ users / planet_pluto例如

要防止map.resources生成路由,只需使用:except

map.resources :user, :except => [:show]

希望有所帮助