Ruby on rails 如何在rails中将/users/1设置为/users/johndoe?

Ruby on rails 如何在rails中将/users/1设置为/users/johndoe?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我使用简单的脚手架来创建用户 rails g scaffold user fname:string lname:string 当我创建用户时,它创建为/users/1、/users/2等,我想知道如何将用户设置为users/fname lname 有没有rails gem可以做这件事 您正在寻找的是创建一个slug 这是做这件事的珍宝。还有一集关于如何使用它的Railscast 您正在寻找的是创建一个slug 这是做这件事的珍宝。还有一集关于如何使用它的Railscast 您还可以在rout

我使用简单的脚手架来创建用户

rails g scaffold user fname:string lname:string 
当我创建用户时,它创建为/users/1、/users/2等,我想知道如何将用户设置为users/fname lname


有没有rails gem可以做这件事

您正在寻找的是创建一个
slug


这是做这件事的珍宝。还有一集关于如何使用它的Railscast

您正在寻找的是创建一个
slug


这是做这件事的珍宝。还有一集关于如何使用它的Railscast

您还可以在routes.rb文件中定义如下内容:

match "users/:fname-:lname/:action", :controller => "users"

但是,当您想要访问您的资源时,您必须传递fname和lname参数。

您还可以在routes.rb文件中定义如下内容:

match "users/:fname-:lname/:action", :controller => "users"

但是,当您想要访问您的资源时,您必须传递fname和lname参数。

不建议使用此类野生路由匹配器。您能解释一下原因吗?我在这里发现了这一点:他们没有警告说不推荐使用Rails。Rails指南是用来解释什么是可能的,它是文档。你应该或不应该做的事情被称为最佳实践,这些都没有列出。使用通配符捕获这样的所有路由仅适用于您没有其他选项的情况,但这里不是这种情况。不推荐使用这样的野生路由匹配器。您能解释一下原因吗?我在这里发现了这一点:他们没有警告说不推荐使用Rails。Rails指南是用来解释什么是可能的,它是文档。你应该或不应该做的事情被称为最佳实践,这些都没有列出。使用通配符捕获这样的所有路由仅适用于没有其他选项的情况,而这里的情况并非如此。