I have a User model. If I do:
def my_action
@user = User.new
end
then
<% form_for(@user) do |f| %>
I get
undefined method `users_path' for #<ActionView::Base:0x1b4b878>
Which make sense because I haven't mapped it going map.resources :users.
.. but I don't want to do it this way because I don't need all the resources.
How can I just define this user_path
method in my routes?
You can also customize restful routes. For example in my application only the index and show actions are appropriate for certain controllers. In my routes.rb file I have some routes like this:
map.resources :announcements, :only => [:index, :show]
You can also use :except
if that's more appropriate.
Since I came here looking for a way to create helpers in routes.rb, here is the way to do it:
get '/users/:id/' =>'users#show', :as => :user
You can map custom routes in your routes.rb file like this...
map.users '/users', :controller => 'user', :action => 'index'
This gives you the users_path
helper you're looking for.
来源:https://stackoverflow.com/questions/1436309/how-to-define-a-custom-path-in-rails