これでいけるか分かりませんけどquick hack的には以下でどうでしょう?
url: "<%= url_for(:controller => 'books', action: => 'edit', :id => 'dynamic_id_replace_tag') %>".replace("dynamic_id_replace_tag",<javascript変数>)
'dynamic_id_replace_tag'というidパラメータがURLにそのままあるだろうから、その部分をjavascriptのreplaceメソッドで置換するようなコードにしました。
前後がないですけど、おそらくこの部分に式はおけるだろうと思います。
別の方法としては、rubyのurl_forをjavascriptで実装する。と言っても、URLの生成ルールが変わることがないか、変わったらその時はまた修正する事にするなら、たとえば下記のように直書きで良いことになります。
(例)url: "/hogehoge/books/edit/"+<javascript変数>
メンテ的には素直じゃないかも知れないけれど、生成されたコード的には素直です。
あと、これが出来れば一番素直かもしれないのが、idを動的に生成するjavascriptのコードをrubyで実装する方法です。