我有一个用户模型。如果我这样做:
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
方法?
答案 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
助手。