RESTful Routing

I am new to the routing scheme for RESTful actions on the edge. I am
trying to stray off of the CRUD path a little here and finding the
terrain a little bumpy.

I am trying to call the method TopicsController#toggle_lock. Topics
belong to Forums, so we have this structure in the routes.rb:

  map.resources :forums do |forum|
    forum.resources :topics do |topic|
      topic.resources :posts
      topic.resources :member => { :toggle_lock => :get }
    end
  end

when I try to hit http://localhost/forums/1/topics/5;toggle_lock I get a 404.

What am I doing wrong?

What is the best way to test this stuff?

Got it to work!

  map.resources :forums do |forum|
    forum.resources :topics do |topic|
      topic.resources :posts
    end
    forum.resources :topics, :member => { :toggle_lock => :post }
  end

And since there aren't any examples out there with tests, here is my test:

  def test_should_toggle_lock
    login_as :aaron
    post :toggle_lock, :forum_id => forums(:comics).id, :id =>
topics(:galactus).id
    assert_redirected_to topic_path(forums(:comics), topics(:galactus))
    assert_equal 'Topic has been locked.', flash[:notice]
  end

Thank you Josh!