Routing Error

I made a button using “<%= button_to “New”, :action => “click” %>” and
have
a method in controller as:
def click
end
In app/view/posts/click.html.erb file holds simple
hello
message.In router.rb ,i added a route to click action of controller as
but
error is there when i click the button it gives the routing error.

No route matches “/posts/click”
Router.rb file looks like:
Check::Application.routes.draw do
get “posts/index”
resources :posts do

end
get ‘posts/click’

The priority is based upon order of creation:

first created -> highest priority.

Sample of regular route:

match ‘products/:id’ => ‘catalog#view’

Keep in mind you can assign values other than :controller and

:action

Sample of named route:

match ‘products/:id/purchase’ => ‘catalog#purchase’, :as =>

:purchase

This route can be invoked with purchase_url(:id => product.id)

Sample resource route (maps HTTP verbs to controller actions

automatically):

resources :products

Sample resource rwith_user/:uoute with options:

resources :products do

member do

get ‘short’

post ‘toggle’

end

collection do

get ‘sold’

end

end

Sample resource route with sub-resources:

resources :products do

resources :comments, :sales

resource :seller

end

Sample resource rwith_user/:uoute with more complex sub-resources

resources :products do

resources :comments

resources :sales do

get ‘recent’, :on => :collection

end

end

Sample resource route within a namespace:

namespace :admin do

# Directs /admin/products/* to Admin::ProductsController

# (app/controllers/admin/products_controller.rb)

resources :products

end

You can have the root of your site routed with “root”

just remember to delete public/index.html.

root :to => “welcome#index”

See how all your routes lay out with “rake routes”

This is a legacy wild controller route that’s not recommended for

RESTful applications.

Note: This route will make all actions in every controller

accessible
via GET requests.

match ‘:controller(/:action(/:id(.:format)))’

end

John

                 No route matches {:controller=>"posts",

:action=>“click”}.

John

By default, the HTTP verb for button_to is POST. If you really want to
make
the request as a GET, you need to do it as:

button_to “New”, :action => “click”, :method => :get

On Sat, May 28, 2011 at 7:25 AM, Chris K. [email protected]
wrote:

Head is spinning from trying to keep up with the various threads and
email
aliases that seem to be trying to solve the same problem.

From what I see, you’ve got a mess in your routes file. According to
the
code you posted to this thread, you’ve got a resource defined plus two
non-resourceful routes, one of which seems to be trying to overlap with
your
resource and one of which should be defined as an additional resourceful
route on the resource.

Now you have:

get “posts/index”
resources :posts do
end
get ‘posts/click’

I think you’re probably trying to get to this:

resources :posts do
get ‘click’, :on => :member
end

I don’t know what the click action is supposed to be doing, but you may
need
to replace :member with :collection if the method acts on all posts
instead
of a single one.

If that doesn’t help, you’re going to need to be more specific and
attach
log snippet and output from rake routes.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs