Reputation: 66436
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?
Upvotes: 11
Views: 21488
Reputation: 8939
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
Upvotes: 8
Reputation: 31761
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.
Upvotes: 6
Reputation: 39325
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.
Upvotes: 3