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

时间:2009-09-17 01:30:05

标签: ruby-on-rails routing

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

def my_action
  @user = User.new
end

然后

  <% form_for(@user) do |f| %>

我得到了

undefined method `users_path' for #<ActionView::Base:0x1b4b878>

哪个有意义,因为我没有将它映射到map.resources :users. ..但我不想这样做,因为我不需要所有的资源。

如何在路线中定义此user_path方法?

3 个答案:

答案 0 :(得分:5)

您也可以customize restful routes。例如,在我的应用程序中,只有索引和show动作适用于某些控制器。在我的routes.rb文件中,我有一些这样的路线:

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

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

答案 1 :(得分:4)

因为我来到这里寻找一种在routes.rb中创建帮助器的方法,所以这是实现它的方法:

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

答案 2 :(得分:3)

您可以在routes.rb文件中映射自定义路线,如下所示......

map.users '/users', :controller => 'user', :action => 'index'

这为您提供了所需的users_path助手。