Hi, Keith

   you missed my second email (sent immediately after ther first) where I
warned about the parenthesys that needed to be moved. Or, better, remove the
parenthesys, and just write:

<%= link_to  'Destroy', {:action => 'destroy', id => @album.id},

                                      :confirm => 'Are you
sure?',
                                      :method => :delete %>

This SHOULD work, without changing anything in the routes.rb file. However,
allow me to point this important point:

a) you have the routes.rb configured for REST, but you are not using the
Rest style Urls.

b) You could delete the line map.resources :albums, if for some reason you
do not want the RESTful Urls, as at a certain moment there will be
confusion; or perhaps invert the order of the rules in routes.rb, as
suggested by the forum post (although I would delete, for more clarity).

On the other hand,  if you wanted to to begin use the Rest routes (standard
in Rails since 2007), you would just need to do:

# replace the lines for delete with:
<%= link_to "Destroy",    project_path(@album),
                      *:*confirm => 'Are you sure?', :method => :delete %>

# replace the line
<%= link_to('Edit', :action => 'edit', :id => @album.id ) %>
# with:
<%= link_to "Edit",   edit_album_path(@album) %>

But if you are inserting custom actions (like 'alt_album_list') you may want
to postpone moving to Rest for the moment. I just showed the above to let
you know.

> ..."Ruby For Rails" by David A Black which is really helpful. I would also
like recommend "Agile Web Development..."

Yes, David Black book is great for Ruby; the AWDWR is great for Rails.

One note: my updated advice for a person seriously interested in Ruby would
be:

a) first, David Black's book mentioned above, as introduction to Ruby

b) then,  "The Ruby Programming Language", by David Flanagan (with
contributions from Matz). Not only it shows 1.8, but also 1.9 (in a very
natural way, without confusion). An extraordinary book.

Raul








On Sun, Oct 19, 2008 at 1:17 PM, <[EMAIL PROTECTED]> wrote:

>
> Hi Raul,
>
> Thanks very much for getting back to me. I took your previously advise
> on the book that you recommended "Ruby For Rails" by David A Black
> which is really helpful. I would also like recommend "Aglie Web
> Development with Rails"  by Dave Thomas this book is also great if you
> are new to rails.
>
> Well Raul I tried the following in my view,
>
>      <% if @album != nil -%>
>         ID:     <%= @album.id %><br/>
>         Title:  <%= @album.title %> <br/>
>         Artist: <%= @album.artist %><br/>
>         Genre:  <%= @album.genre  %><br/>
>      <%  else -%>
>         No record found.
>
>      <% end -%>
>      <%= link_to('Back', :action => 'alt_album_list') %> |
>      <%= link_to('Edit', :action => 'edit', :id => @album.id ) %> |
>      <%= link_to('Destroy', {:action => 'destroy', :id =>
> @album.id},
>
>                                      :confirm => 'Are you sure?',
>                                     :method => :delete)%>
>
> and I thought would also try
>
> <%= link_to('Destroy', {:action => 'destroy', id => @album.id},  ***I
> also changed the id to a symbol being :id***
>                                     :confirm => 'Are you sure?'),
>                                     :method => :delete %>    Rails
> didn't seem to like the parenthesis around :confirm => 'Are you
> sure?'#
>
> I have also copied in my routes.rb file
>
> ActionController::Routing::Routes.draw do |map|
>  map.resources :albums
>
>  # The priority is based upon order of creation: first created ->
> highest priority.
>
>  # Sample of regular route:
>  #   map.connect 'products/:id', :controller => 'catalog', :action =>
> 'view'
>  # Keep in mind you can assign values other than :controller
> and :action
>
>  # Sample of named route:
>  #   map.purchase 'products/:id/purchase', :controller =>
> 'catalog', :action => 'purchase'
>  # This route can be invoked with purchase_url(:id => product.id)
>
>  # Sample resource route (maps HTTP verbs to controller actions
> automatically):
>  #   map.resources :products
>
>  # Sample resource route with options:
>  #   map.resources :products, :member => { :short => :get, :toggle
> => :post }, :collection => { :sold => :get }
>
>  # Sample resource route with sub-resources:
>  #   map.resources :products, :has_many =>
> [ :comments, :sales ], :has_one => :seller
>
>  # Sample resource route with more complex sub-resources
>  #   map.resources :products do |products|
>  #     products.resources :comments
>  #     products.resources :sales, :collection => { :recent => :get }
>  #   end
>
>  # Sample resource route within a namespace:
>  #   map.namespace :admin do |admin|
>  #     # Directs /admin/products/* to Admin::ProductsController (app/
> controllers/admin/products_controller.rb)
>  #     admin.resources :products
>  #   end
>
>  # You can have the root of your site routed with map.root -- just
> remember to delete public/index.html.
>   map.root :controller => "albums"
>
>  # See how all your routes lay out with "rake routes"
>
>  # Install the default routes as the lowest priority.
>  map.connect ':controller/:action/:id'
>  map.connect ':controller/:action/:id.:format'
> end
>
>
> Does the error I'm receiving have anything to do with map.connect
> ':controller/:action/:id' being as lowest priority?
>
> Thanks
>
> Keith
>
>
> On Oct 19, 8:21 pm, "raul parolari" <[EMAIL PROTECTED]> wrote:
> > Keith,
> >
> >   the closing parenthesis (that I had not noticed) has of course to be
> moved
> > at the end of the statement, so the line becomes:
> >
> > <%= link_to('Destroy', {:action => 'destroy', id => @album.id},
> >                                      :confirm => 'Are you sure?',
> >                                      :method => :delete) %>
> >
> > I would leave out the parenthesis, which are not needed here, and only
> add
> > noise
> >
> > Raul
> >
> > On Sun, Oct 19, 2008 at 12:00 PM, raul parolari <[EMAIL PROTECTED]
> >wrote:
> >
> >
> >
> >
> >
> > > Keith
> >
> > > The problem may be that you are using a GET Http verb to 'destroy' a
> > > resource (and Rails is not happy about it):
> >
> > > Try this: change the line:
> >
> > > <%= link_to('Destroy', {:action => 'destroy', id => @album.id},
> > >                                      :confirm => 'Are you sure?') %>
> > > into
> >
> > > <%= link_to('Destroy', {:action => 'destroy', id => @album.id},
> > >                                      :confirm => 'Are you sure?'),
> > >                                      :method => :delete %>
> >
> > > See if this solve the problem; else, you should show your routes.rb
> file.
> >
> > > Raul
> >
> > > On Sun, Oct 19, 2008 at 11:20 AM, <[EMAIL PROTECTED]> wrote:
> >
> > >> Hi Everyone,
> >
> > >> I have just created a destroy action in my controller, it was working
> > >> fine about 2 hours ago and now for some reason it has stopped working.
> > >> Once I click on destroy I receive  ' Unknown action No action
> > >> responded to destroy'. The action that I want it to redirect to is
> > >> 'list' and this action does work as I have another action that
> > >> redirects to 'list' fine. Could anyone let me in to what I I have done
> > >> wrong please...?
> >
> > >> def list
> > >>      @albums = Album.find(:all)
> > >>      render(:action => 'album_list')
> > >>     end
> >
> > >> def destroy
> > >>        @album = Album.find(params[:id])
> > >>        @album.destroy
> > >>        redirect_to(:action =>'list')
> > >>      end
> >
> > >> And in my view I have
> >
> > >> <% if @album != nil -%>
> > >>         ID:     <%= @album.id %><br/>
> > >>         Title:  <%= @album.title %> <br/>
> > >>         Artist: <%= @album.artist %><br/>
> > >>         Genre:  <%= @album.genre  %><br/>
> > >>      <%  else -%>
> > >>         No record found.
> >
> > >>      <% end -%>
> > >>      <%= link_to('Back', :action => 'alt_album_list') %> |
> > >>      <%= link_to('Edit', :action => 'edit', :id => @album.id ) %> |
> > >>      <%= link_to('Destroy', {:action => 'destroy', id =>
> > >> @album.id}, :confirm => '
> > >>        Are you sure?') %>
> >
> > >> When I go into the logs I get the following error message
> >
> > >> Processing PublicController#destroy (for 127.0.0.1 at 2008-10-19
> > >> 16:32:19) [GET]
> > >>  Session ID:
> > >> BAh7ByIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
> > >> SGFzaHsABjoKQHVzZWR7ADoMY3NyZl9pZCIlZmFlNWMzZDcxOWY5OTM0Yzhk
> > >> ZDk0YTgwMDU4OWNkMDA=--5ecae299067ff9537732b80de514985b52f69fab
> > >>  Parameters: {"controller"=>"public", "action"=>"destroy",
> > >> "id"=>"15"}
> >
> > >> ActionController::UnknownAction (No action responded to destroy):
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/filters.rb:580:in
> > >> `call_filters'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/filters.rb:573:in
> > >> `perform_action_with_filters'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/benchmarking.rb:68:in
> > >> `perform_action_with_benchmark'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/1.8/benchmark.rb:
> > >> 293:in `measure'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/benchmarking.rb:68:in
> > >> `perform_action_with_benchmark'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/rescue.rb:201:in
> > >> `perform_action_with_rescue'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/caching/sql_cache.rb:13:in
> > >> `perform_action_with_caching'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> activerecord-2.1.0/lib/active_record/connection_adapters/abstract/
> > >> query_cache.rb:33:in `cache'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> activerecord-2.1.0/lib/active_record/query_cache.rb:8:in `cache'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/caching/sql_cache.rb:12:in
> > >> `perform_action_with_caching'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/base.rb:529:in `process'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/filters.rb:569:in
> > >> `process_with_filters'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/session_management.rb:130:in
> > >> `process_with_session_management_support'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/base.rb:389:in `process'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/dispatcher.rb:149:in
> > >> `handle_request'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/dispatcher.rb:107:in `dispatch'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in
> > >> `synchronize'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in `dispatch'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/dispatcher.rb:120:in
> > >> `dispatch_cgi'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> actionpack-2.1.0/lib/action_controller/dispatcher.rb:35:in `dispatch'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> rails-2.1.0/lib/webrick_server.rb:112:in `handle_dispatch'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/gems/
> > >> rails-2.1.0/lib/webrick_server.rb:78:in `service'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/1.8/webrick/
> > >> httpserver.rb:104:in `service'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/1.8/webrick/
> > >> httpserver.rb:65:in `run'
> > >>    C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/1.8/webrick/
> > >> server.rb:173:in `start_thread'
> > >>    :1:in `start'
> >
> > >> Rendering C:/Users/Keith/.netbeans/6.1/jruby-1.1/lib/ruby/gems/1.8/
> > >> gems/actionpack-2.1.0/lib/action_controller/templates/rescues/
> > >> layout.erb (not_found)
> >
> > >> Has anyone came across this before? I have done  research on the
> > >> message and someone has the same problem and fixed it by going into
> > >> the following
> >
> > >> This is a comment I found from another group
> >
> > >> I got this error (ActionController::UnknownAction - No action
> > >> responded to ...), and I noticed it was because the link_to helper
> > >> generated bad URL's (in the ":controller/:id/:action" format rather
> > >> than ":controller/:action/:id").
> >
> > >> The fix was to change the order of statements in the config/routes.rb
> > >> file; move my "map.resources" statements higher up in the file
> > >> (=higher priority).
> >
> > >> Thanks everyone- Hide quoted text -
> >
> > - Show quoted text -
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "ruby-on-rails-programming-with-passion" group.
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/ruby-on-rails-programming-with-passion?hl=en?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to