Ruby on rails 如何在rails中定义自定义路径?

Ruby on rails 如何在rails中定义自定义路径?,ruby-on-rails,routing,Ruby On Rails,Routing,我有一个用户模型。如果我这样做: def my_action @user = User.new end 然后 我明白了 未定义的方法“users\u path”# 这很有意义,因为我还没有将它映射到地图上。map.resources:users。。。但我不想这样做,因为我不需要所有的资源 如何在我的routes中定义此用户路径方法?您可以像这样在routes.rb文件中映射自定义路由 map.users '/users', :controller => 'user', :act

我有一个用户模型。如果我这样做:

def my_action
  @user = User.new
end
然后


我明白了

未定义的方法“users\u path”#
这很有意义,因为我还没有将它映射到地图上。
map.resources:users。
。。但我不想这样做,因为我不需要所有的资源


如何在我的routes中定义此
用户路径
方法?

您可以像这样在routes.rb文件中映射自定义路由

map.users '/users', :controller => 'user', :action => 'index'
这将为您提供所需的
users\u路径
帮助程序。

您也可以。例如,在我的应用程序中,只有索引和显示操作适用于某些控制器。在我的routes.rb文件中,我有如下一些路由:

map.resources :announcements, :only => [:index, :show]

您也可以使用
:如果更合适的话,可以使用

自从我来这里寻找在routes.rb中创建帮助程序的方法以来,以下是方法:

get '/users/:id/' =>'users#show', :as => :user

谢谢这是惯例吗?像到索引的路由是model_path吗?这是不正确的。这不会解决表单发布问题,因为它将执行错误的操作。map.resources:users,:only=>[:new,:create]是适当的约定。
map.resources :announcements, :only => [:index, :show]
get '/users/:id/' =>'users#show', :as => :user