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

mar*_*cgg 8 routing ruby-on-rails

我有一个用户模型.如果我做:

def my_action
  @user = User.new
end
Run Code Online (Sandbox Code Playgroud)

然后

  <% form_for(@user) do |f| %>
Run Code Online (Sandbox Code Playgroud)

我明白了

undefined method `users_path' for #<ActionView::Base:0x1b4b878>
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为我没有映射它map.resources :users....但我不想这样做,因为我不需要所有的资源.

我怎样才能user_path在我的路线中定义这个方法?

iro*_*nic 7

因为我来这里是为了寻找一种在 routes.rb 中创建助手的方法,所以这里是这样做的方法:

get '/users/:id/' =>'users#show', :as => :user
Run Code Online (Sandbox Code Playgroud)


And*_*ell 5

您还可以自定义休息路线.例如,在我的应用程序中,只有索引和show动作适用于某些控制器.在我的routes.rb文件中,我有一些像这样的路线:

map.resources :announcements, :only => [:index, :show]
Run Code Online (Sandbox Code Playgroud)

你也可以使用,:except如果这更合适.