Params equal by apply custom routing rule

I have a little problem with routing while code new application on rails
3.0.4.

My config/routes.rb:

Zi::Application.routes.draw do
  ...
  scope "/cpd", :controller => :control_pds do
    match "index" => :index
    match ":org_id" => :show, :as => "cpd"
    match ":org_id/new" => :new, :as => "new_control_pds"
    post ":org_id/create" => :create, :as => "control_pds"
    match ":org_id/:id/edit" => :edit, :as => "edit_org_cpd"
    put ":org_id/:id/update" => :update, :as => "control_pd"
    delete ":org_id/:id" => :destroy, :as => "del_org_cpd"
  end
  ...
end

My control_pds_controller.rb:

class ControlPdsController < ApplicationController
...
  def edit
    @journal = ControlPd.find(params[:id])
  end
...
end

In my view file I have:

...
  - @journal.each do |j|
    %tr
      %td= j.id
      %td= j.event
      %td= j.date
      %td= j.doer
      %td= j.result
      %td
        = link_to "Edit", edit_org_cpd_path(j)
...

When I clicking edit link for my journal entry (url
http://localhost:3000/cpd/1/5/edit) in page source code I have:
<form accept-charset="UTF-8" action="/cpd/5/5/update"...

But logically it seems to be like:
<form accept-charset="UTF-8" action="/cpd/1/5/update"...

While accessing edit page in development.log I have valid parameters:

Started GET "/cpd/1/5/edit" for 127.0.0.1 at Sat Feb 19 12:03:53 +0300
2011
  Processing by ControlPdsController#edit as HTML
  Parameters: {"org_id"=>"1", "id"=>"5"}
...

What I do incorrect?